2012-05-06 7 views
0

私は、どのようにArrayListを使用してtoString()を格納することができますか質問したいと思います。私は最後にtoStringを持つクラスを持っています。クラスのtoStringをArrayListに格納する必要があります。現在x場合にNullPointerExceptionを避けるように、あなたは"" + xトリックを使用することができます 文字列、文字列、int型、ブールArrayListとtoString

+10

私は最後にtoStringをどういう意味ですか?クラスファイルの終わりにメソッドを宣言したということですか?あなたはこのサイトでできるだけ具体的にする必要があり、質問を完全に理解するためにコードを投稿することがよくあります。 StackOverFlowへようこそ! – K2xL

+0

あなたのコードはどこにありますか?既に何を試しましたか? –

答えて

2

オブジェクト。

+0

なぜアレイリストのサイズを10に設定するのですか? – luketorjussen

+1

@luketorjussen:どうしてですか?ゼロ引数のコンストラクタは、暗黙的に同じことを行います。 – home

+0

@ Eng.Fouad - 誤植をありがとう。 –

1

を再生する音楽名、著者、リリース年は、nullである:

このよう

public List<String> musicToString(List<Music> musicList) { 
    final List<String> strings = new ArrayList<String>(); 
    for (Music m : musicList) strings.add("" + m); 
    return strings; 
} 

これは、連結演算子+がすべての参照型オペランドで暗黙的にString.valueOfを呼び出すためです。

審美的な好みの場合は、String.valueOfを明示的に書くこともできます。 StringBuilderをインスタンス化していないという利点もあります(空の文字列リテラルを見ることができるので、コンパイラーはそれを避けることができます)。あなたが適切にあなたがそのクラスのtoString()をオーバーライドし、toString()方法でArrayListにその文字列を変換するビジネスロジックを定義する必要があり、あなたの特定のクラスのtoString()方法で
使用

List<String> listDesired = new ArrayList<String>(10); 
listDesired.add(myMusicDataClassInstance.toString()); 
+0

しかし、私たちはnullをリストに表示したいでしょうか? – luketorjussen

+0

これにより、文字列 'null'がリストに表示されます。 'm.toString()'を使うとコンソールのNPEを除いて何も表示されません:) –

+2

あなたはString.valueOf()を使うこともできます。連結の代わりに。 –

0

テキストをフォーマットしていることを望ん

+0

'toString()'は常に 'String'を返すので、メソッドの適切なオーバーライドではありません。メソッドをオーバーロードすることもできますが、このような状況でもメソッドを実行する利点はありません。 – Makoto

1

質問は不明ですが、オブジェクトにすでにtoString()メソッドが定義されている場合は、配列リストに別々に格納する必要はありません。 ArrayListにオブジェクトを追加して、Collections.toString(yourList)を実行してください。

0
List<String> listDesired = new ArrayList<String>(10); 
関連する問題