- - PR -
キャストって言うんですかね??
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-23 14:47
やっぱり、言ってることがよくわからない。日本語でおk。
読点を使わない国の人かな ? 差別するつもりはないけど、教えを乞うならそれなりの言葉を使おうよ。 で、そのロジック(のつもりのもの)はうっすらと理解できないでもないけど、 どうなってほしいのかが今ひとつわからない。 class Dataの定義と、最終的にlistにどんなものが入ってほしいのかを詳しく書いて。 | ||||||||
|
投稿日時: 2006-05-23 15:04
実体の参照を確認した方がよいのではないでしょうか?
ArrayListにaddしても実体への参照は変わりません。 (ぼぼさんの言う「確定」はされない。と私は思った)
結果 10 10 20 20 こんな感じで、なぜcの値が変わるか、ということじゃないのかな? | ||||||||
|
投稿日時: 2006-05-23 15:30
「参照」自体を理解していないということに、なりそうな気がします。
| ||||||||
|
投稿日時: 2006-05-23 15:31
おっしゃりたい意味がやっと分かりました。
↓これはNG
↓これはOKということですよね?>ぼぼさん
Javaのオブジェクト型は参照渡しです。 よってNG例の処理ではdata1を3回追加していますが、 同一オブジェクトであるために参照先も同一になってしまいます。 data1オブジェクト生成 ← 【ループ1回目】 list1:data1(=Bの結果の1件目を参照) 【ループ2回目】 list1:data1(=Bの結果の2件目を参照)←NG list2:data1(=Bの結果の2件目を参照) 【ループ3回目】 list1:data1(=Bの結果の3件目を参照)←NG list2:data1(=Bの結果の3件目を参照)←NG list3:data1(=Bの結果の3件目を参照) OK例のようにlistに要素を追加する際、 毎回別オブジェクトとして追加すれば問題ありません。 【ループ1回目】 dataオブジェクト生成 ← list1:data(=Bの結果の1件目を参照) 【ループ2回目】 dataオブジェクト生成 ← list1:data(=Bの結果の1件目を参照)←OK list2:data(=Bの結果の2件目を参照) 【ループ3回目】 dataオブジェクト生成 ← list1:data(=Bの結果の1件目を参照)←OK list2:data(=Bの結果の2件目を参照)←OK list3:data(=Bの結果の3件目を参照) | ||||||||
|
投稿日時: 2006-05-23 15:48
お答えありがとうございます。
質問したかった内容は悠さん・未記入さんのおっしゃるとおりです。 mioさんの言うとおり参照を理解していませんでした。 listにaddされた時そのままのdataクラスが格納されるものと思ってました。 どうもありがとうございました。 | ||||||||
|
投稿日時: 2006-05-23 19:37
( ´、_ゝ`) プスッ | ||||||||
|
投稿日時: 2006-05-24 00:54
なにやらお怒りを買ってしまったようですね。
不快な気分をされたのなら謝ります。 今回のレスも半分ほど読解できません。ごめんなさい。 |