【初心者】真・Java質問・相談スレッド91【大歓迎】
>>904 いや、たぶん コンパイラの解釈は
Object obj = (v == 1 ? "A" : Integer.valueOf(v));
System.out.println("引いたカードは" + obj + "です");
みたいな感じになってると思う。
ってか、boxing された後の v が単体で文字列変換できるなら
int の v からでも文字列変換できるはずだから String と互換性がある事になると思うし。
>>905 ほう。Stringもアップキャストされるのか。
そのうちjadで覗いてみるとしよう。
>>867 Javaにはポインタがある。
オブジェクトは最初からポインタになる。
ウホッ
>>906 いや、v が変換されて Integer.valueOf(v).toString() になってるかどうかは、
int v = 0;
String s = v == 1 ? "A" : v;
が コンパイル通るか調べた方がマシだと思うよ。
コンパイラが必ず言語仕様に従ってるって前提なのが、
警察官が必ず法律守ってるはず、みたいな前提なのでアレだと思うけど。
言語仕様の事を調べたかったら、最新版は英語しかなくても言語仕様読もうよ。
とりあえずjadっとくのは基本中の基本。
>>910 頭悪い方法だけどね。
時間も能力も無いなら仕方が無い。
意味の無い煽りで自己満オナニーするほど頭悪かないよ
>>909 >String s = v == 1 ? "A" : v;
これコンパイルエラーになる
>>904は間違いだな
別にいらんだろ。コード書くときに確かめりゃいいことだ。
>>916 いや、調べたけど分からなかったんだろう、たぶん。
Javaのオブジェクトは、Stringオブジェクトと+で連結すると暗黙のうちに
Object#toString()メソッドを呼び出しているから、ああなる。
Integer.valueOf(int)は、Java5から登場したオートボクシングにすぎない。
>>911 Jadは頭悪いのか?
勉強になると思うんだが。
しかしまともなのは、EclipseのBytecode OutLineプラグインで
バイトコードを覗くことかな?
>>913 JDKのバージョンによってエラーになるならないが違うってことはないか?
Java in the Boxの中の人が心を痛めていらっしゃる。
>>914がいいたいのは、どの環境でコンパイルしたのかじゃないの?
924 :
デフォルトの名無しさん:2006/09/30(土) 23:34:29
すみませんioToolsというのはどうやって取り込むのでしょうか‥
学校でも一応やり方を教えてもらったのですが、何故かエラーが出てどうしてもうまくいきません‥
どなたかちゃんとしたやり方を教えて下さい
本当に困ってるのでお願いします
>>920 話がかみ合ってないようだが、おまえが頭悪いじゃないか?
>>924 ioToolsがどういうのかわからん俺はとりあえずググることから始めると思う
>頭悪いじゃないか?
だって。あたまわるそww。
頭わるいじゃないか。いいじゃないか。
45分たってやっとか
>>927という文句を思いついたんだ
生暖かく
>>927を見守ってやろうぜ… (´;ω;`)ウッ
なに一生懸命連投してんだ
>>930 実行時に必要なライブラリをクラスパスに通していない可能性があるとか
934 :
デフォルトの名無しさん:2006/10/01(日) 01:03:57
>>933 ちょ‥理解できませんorz
すみませんJava初心者なので‥
>>873 public static final int だと、int型の「定数」になっちゃうよ。
クラス変数を定義するなら、finalはいらないよ。
public static intでint型のクラス「変数」。
>>935 class hoge{
private static final int PI;
public static void piyo(){ PI=3; }
}
って出来なかったっけ?
>>936 それはやったことないな〜。普通は、finalメンバの定義と同時に値の代入やっちゃうよね。
一回目のメソッド呼び出しだけなら大丈夫なんだろうか?
コンパイルしてみないとわからんわ。
staticブロックじゃなくて?
>>936 そもそも、なんでfinalにするの?
動的に定数値を決定したいっていう意味?それが出来るのかはわからないけど。
>>939 動的に定数値を決定したい、という意味でfinalを使ってるわけじゃないぉ
こういうことも出来るんじゃないか、という意味でプログラム書いたんだぉ
<rem>
>>935が変数と定数の違いでのみ public static final int を論じてたから
代入できるんだったら変数になるよねー、という意味で・・・
</rem>
>>940 確かに、一回代入できるってのを変数と見ることも出来なくはないかもね。
ただ、一回代入してそれ以降代入できないなら、その後値を変えることが出来ないんだから、変数としての機能がないと思う。
んだね、人によって判断が違うところかも
ところでfinalって、参照型(配列型とかオブジェクト変数とか)の場合は何に対してfinalされるん?
VB厨の俺にひところでおせーて
>>942 どうなんだろ〜。考えたこともなかったな。
最初に代入した参照アドレスで固定されるのかね。
これも、コンパイルして実験してみるのが一番早いな。
ただ、実際それが出来たとして、どういうときにそういう宣言が役立つのかが
いまいち思い浮かばないわ。
ふぅむ・・・たとえばVBのStringは値型だけど、Javaは参照型だったよね
で、
private final String Programmer="hoge";
ってできるのなら、
やっぱりProgrammerが指し示すモノが固定されるのが一番だね…おk、把握しました
あ、そうそう
参照アドレス(hashCode()の戻り値?)ってメモリアドレスじゃなくてハンドルでいいんだよね?
javaの実装ってそこまで決めてないと思ってる俺
>>944 参照アドレスってhashCode()の戻り値なの?
少なくともhashCode()の戻り値はメモリアドレスではないと思うよ。
正直Javaの実装についてはわからないや。すまん。
>>922 スキンヘッドのお方が痛める?
そういえば彼はJavaOne Tokyo2005で弦楽器を持ってきていた。
演奏しているところを見てみたかった。
>>925 なんで?
できれば頭悪い方法だとする根拠を説明して欲しい。
>>935 定数だけどクラス変数ともいえるよ。
クラス定数って言うべきか?
しかしfinalがつくと、最初の一回だけは代入できるし。
>>942 配列型や、オブジェクト変数?ではんくてコレクション系は
finalにしても根っこの部分しかfinalにならず、配列やコレクションの中に
入っている個々の要素はそのままではfinalにはならないよ。
Collectionsクラスに個々の要素をfinalにするメソッドがあるよ。
>>944 > 参照アドレス(hashCode()の戻り値?)ってメモリアドレスじゃなくてハンドルでいいんだよね?
ハンドル? Javaにはそんな用語はないが、メモリアドレスでもない。
メモリのパリティチェック(誤り検出)機構みたいなものだ。
WinnyのハッシュやMD5などのハッシュを想像してみれば解る。
主にコレクションインタフェースにそのオブジェクトを入れるときに使う。
二つのオブジェクトのハッシュ値が一致するとき、かならずその二つのオブジェクトは同値、
つまりObject#equals()がtrueを返さすよう満たさなければならない。
しかしObject#equals()がtrueを返したからといって二つのオブジェクトに対してObject#hashCode()
したときその値が一致しなければならないとは限らない。
実装方法が解らなければ、Jakarta Commons Lang のHashCodeBuilderクラスと
Eclipseのプラグイン、Commons4Eを使え。
>>944,951
ハッシュとJavaの変数の参照については全く関係がないので混乱しないように。
>>949 正確には、
インスタンス定数はコンストラクタ内でのみ、クラス定数は静的コンストラクタ内でのみ、
1回までならば代入できる、だな。
>メモリのパリティチェック(誤り検出)機構みたいなものだ。
あほですな