2016-04-12 16 views
0

上記と基本的に同じ質問ですが、ArrayListがオブジェクトのコンストラクタに渡された場合、それは参照または値によって渡されますか?ArrayListがオブジェクトのコンストラクタに渡された場合、それは参照または値によって渡されますか?

以下の例では、TickHistoryオブジェクトを作成してarraylistを渡すと、後に渡されたarraylistを変更すると、TickHistoryオブジェクトインスタンスでも変更されますか?

public class TickHistory { 
    List<Tick> ticks; 

    String period; 
    String name; 
    Integer year; 


    public TickHistory(String name, String period, Integer year, List<Tick> ticks){ 
     this.name=name; 
     this.period=period; 
     this.year=year; 
     this.ticks=ticks; 
    } 

} 
+2

あなたは、単にそれを試してみましたか? – Derlin

+0

あなたが望む: this.ticks = new ArrayList <>(ティック); – Tatarize

+0

はい、ありがとうございます。実際には、オブジェクトへの参照が渡されたかのように振舞う代わりに、プリミティブを渡すような、値渡しではない場合、「値渡し」と言うのは非常に紛らわしいものです。 – LucasSeveryn

答えて

0

Javaは値渡し常にあります。残念ながら、彼らは ポインタ参照と呼ぶことにしました。これは初心者を混乱させます。それらの参照は に値渡しされるためです。

Check this article

Also check these posts

+0

okだから、私が渡したarraylistを変更すると、オブジェクト内のものは変更されません。 – LucasSeveryn

+0

それは変更されます。 – Tatarize

+0

新しいarraylistを宣言し、ダニで埋める必要があります。したがって、新しいArrayList <>(ticks); – Tatarize

関連する問題