2016-09-23 10 views
0

ArrayListは、関数内でnullとして開始され、別の関数に渡されます。別の関数では、そのリストに対してnullと空をチェックし、渡されたリストがnullであれば新しく作成されたリストを割り当てました。しかし、私はその機能から戻ってきたとき、私はまだそのリストがnullであることを発見しました。 javaが値渡しされると、渡されたリストの変更は返されたリストに反映されます。ArrayListは、関数から返されるとnullです。

+0

あなたのコードを説明する代わりに*表示*してください。私は、Javaで渡されているものが誤解されている可能性が高いと考えています。これはオブジェクトではなく、参考にしています。参照は値によって渡されますが、オブジェクトへの変更は後で参照によって参照できます。 –

+0

いくつかのコードを追加してください – Venkat

答えて

0

Javaは、値渡しとなります。

あなたのリストへのポインタを値で渡します。

メソッドは、呼び出し元が使用する変数を新しい値(は、参照)に更新することはできません。

あなたのメソッドでできることは、(適切なメソッドを呼び出すことによって)渡されたリストの内容を変更することだけです。別のリストに変更することはできません。それをしたい場合は、戻り値として新しいリストを返す必要があります。

関連する問題