Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

JAVAって勝手が違う

引数にout/in (byref,byval) が使えないのね。
C#で培ったソースを移植しようとしたら、至る所で引っかかる。
要素一つの配列渡しで妥協しましたが、不細工感一杯。
勿論、言語仕様を確認しなかった落ち度もあるのですが、開発言語を意識したロジック考察がいるのね。

JavaでJsonを扱うモジュールに JSONICがありますが、これは、Jsonデータの要素項目で動的にインスタンスを作るモノですが、
アプレットでは落ちる。セキュリティの関係で、無暗にインスタンスができないようになっているためですね。
セキュリティ基準と適用の方法も、.net系とは違うようで、この面でも勝手が違う。

プロパティがないのも辛い。 Java7で登場すると聞いたのですが、何時になるやら。
1クラス1Fileになると、やたらFile数が増えるので、JAR/WAR化がカギになりますね。これも、DLL化とは違うスタンスなので勝手が違う。
クラス名とFile名を一致させる必然性は疑問を感じながらも、慣れてくると違和感がなくなったのは不思議。

 

投稿日時 : 2011年6月3日 0:16

Feedback

# re: JAVAって勝手が違う 2011/06/03 10:03 aetos

> 要素一つの配列渡し

これはさすがに何かやり方を間違えている予感。
いや、Java ほとんど知りませんけど。

# re: JAVAって勝手が違う 2011/06/03 11:00 みきぬ

void Hoge(params int[] list)

を Java で実現したいというお話であれば、

void hoge(int... list)

でできるという託宣が Google から得られました。
# ただしJDK5.0以降?

# re: JAVAって勝手が違う 2011/06/03 12:28 noname

複数の参照渡しをしたいってことならclassで渡すかなぁ。
java知りませんけど。

# re: JAVAって勝手が違う 2011/06/03 13:57 aetos

Integer で渡すとか?
Java知りませんけど。

# re: JAVAって勝手が違う 2011/06/03 22:47 επιστημη

>> 要素一つの配列渡し
> これはさすがに何かやり方を間違えている予感。

class ref<E> {
public E value;
}

void Hoge(ref<なにか> ref_obj) {
ref_obj.value = かきかえー
...
}

とか?
Java知りませんけど。

# re: JAVAって勝手が違う 2011/06/04 9:11 かたぎり

むずかしぃー><。
JAVAってそんなに難しいことしなくてもできたと思うの。

クラスつくって、
クラスの中のフィールドのSetterとGetter作って
そのクラスのインスタンス作成して
つかうだけ、、、だと思ってた><。
ふわっとテケトー

class <E> Ref {
private 何か e value;

public setE( e) {}
public getE() {}
}

Class Application(){

private <E> ref;

void Hoge() {

ref.setE(かきかえー)
...
}

void main(...args){
ref = new Ref();
}

setRef(ref){}
getRef(){}

}



# re: JAVAって勝手が違う 2011/06/04 12:33 ognac

言語思想的に、参照渡しは設定しなかったらしいですね。
javaの人たちは不便に感じないのかなぁ。
皆様の提示のように、クラス経由の更新になるようです。
となると、要素ひとつの配列渡しもアナガチ間違いではない気がします。不細工ですが、
JAVAの制約を不便との感じるのは、C#が使い易いからでしょうね。
行きがかり上、JAVAから逃れられないし......(愚痴ごめん)
Java知りませんけど。

タイトル  
名前  
Url
コメント