- 1 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 01:15:05.17 ]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 (p)ttp://www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド ★★Java質問・相談スレッド150★★ toro.2ch.net/test/read.cgi/tech/1324704285/
- 236 名前:235 mailto:sage [2012/01/21(土) 00:16:24.87 ]
- java.util.Mapって、どうしてclone()できないのかな?
中身はMapを実装したクラスなのであれば、cloneを予めimplementsしていてもよい気がしないかな?
- 237 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:24:17.61 ]
- >>235
java.util.Map.Entry<Integer, Integer> でおk でも読み難いから import の使い方覚えるべき >>236 どうしてかはどこかで説明を読んだ気がしたけど忘れた 複製したいときは Map<Integer, Integer> map2 = new HashMap<Integer, Integer>(map1); 的な方法でできる
- 238 名前:237 mailto:sage [2012/01/21(土) 00:26:38.70 ]
- >>235
間違えた。 java.util.Map.Entry<Integer, java.util.Map<Integer, Integer>> が正しい。
- 239 名前:235 mailto:sage [2012/01/21(土) 00:36:48.64 ]
- >>236
ありがとうー。不安で仕方が無かったから助かった。 複製については、元と同じ実装で複製したいならリフレクションするしかないでFAかな? リフレクションとかまだわかってないし、今作ってるプログラムはそこまでこだわりないけど。
- 240 名前:235 mailto:sage [2012/01/21(土) 00:42:26.65 ]
- ttp://webcache.googleusercontent.com/search?q=cache:y_qrWeWUd0gJ:www.atmarkit.co.jp/bbs/phpBB/viewtopic.php%3Ftopic%3D37029%26forum%3D12+java+util+map+clone&cd=9&hl=ja&ct=clnk&gl=jp
真ん中付近のリフレクションのコード、 コンパイルエラーなんだけど、どうすればコンパイル通るのかな?
- 241 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:55:28.98 ]
- これでどう
Class<?> clazz = obj.getClass(); java.lang.reflect.Method method = clazz.getMethod("clone"); @SuppressWarnings("unchecked") T result = (T) method.invoke(obj); return result;
- 242 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:32:24.68 ]
- >>236
javaの重要なことって全部sunのオンラインチュートリアルに書いてるんだけどさ。oracleになってリンク切れ起こした。 htmlの実体はあるんだけど昔のURLでアクセスするとリダイレクトされてリダイレクト先に存在しないからどうやっても辿れない。 放置されたままだからInternet Archiveから発掘するしかないと思う。
- 243 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:45:26.84 ]
- なにもかも、所詮はオラクルがやることだから仕様がない
- 244 名前:235 mailto:sage [2012/01/21(土) 01:50:20.86 ]
- 日記みたいに連投してごめんね。まだ続きそう。
ttp://ideone.com/ds4bO >>236後半って、要はコピーコンストラクタだよね? 何か、実行してみるとよくわからないことになった。 コピーしてるのかな? hashCodeを確認してみると、mapの実体が複製されていない気がするんだ。 map_Map2 = map_Map; map_Map2 = new … ↑で一時的に、map_Map2がmap_Mapと同じインスタンスをさしているのは当然だと思うのだけど、 newしてもmap_Map2.hashCode()の値に変化がない。 しかもHashMapになってない。さっぱりわからなくなってきた。 ところで、コレクション系のシャローコピーって var2 = var1 var2 = var1.clone(); で同じなのかな? valueの指し示すデータが複製されないのは理解できるのだけど、 (keyと)valueのセットが複製されないなら、シャローコピーの存在意義が無い気がする。 あくまで、オーバライド用のメソッドなのかな?
- 245 名前:235 mailto:sage [2012/01/21(土) 01:55:58.87 ]
- >javaの重要なことって全部sunのオンラインチュートリアルに書いてるんだけどさ。oracleになってリンク切れ起こした。
確かに、いろいろリンク切れてて困る。 ttp://java.sun.com/javase/ja/6/docs/ja/ これじゃなくて、初心者を教育するための中途リアルがあるの? Sunって日本人にやさしいところがあるよね。どうしてなんだろ。 英語(米欧印)と中国語で、世界の人口の大部分をまかなえるのに、日本語とか。 すごくありがたいんだけど不思議。 Oracleになって、幸先が悪いよね。何かの安いSDKに力入れてるらしいけど、eclipse(pleiades)が無料なのにいまさら何を…。 すみません、Javaの話じゃないですね。逝ってきます。
- 246 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:58:06.32 ]
- ゆとりウザイ
- 247 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 02:02:21.82 ]
- >>244
コレクションクラスの hashCode は中身の hashCode を合算したものなので 中身が同じなら変わらないし中身が変われば変わる equals が中身全要素の比較なので、それと整合性を取るため (equals が true を返す場合は hashCode も等しい) var2 に put した要素が var1 の get で現れるか見てみればわかる
|

|