ArrayList<String> 无法转换为字符串。
ArrayList<String> cannot be converted to string.
好的,我正在制作一个 CD collection 程序并且一切顺利,因为我一直在学习我的课程,但后来我 运行 陷入了想要让它出现在jTextArea。我敢打赌有一个简单的解决方案,但我找不到。我是新手,任何答案将不胜感激,我也在这里寻找答案,但没有找到我理解的东西。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jButton1.setEnabled(true);
jButton2.setEnabled(false);
jButton3.setEnabled(false);
jButton4.setEnabled(false); //buttons
ArrayList<String> CD = new ArrayList(); //list
Collections.addAll(CD, "\nEd Sheeran - X\n", "\nNirvana - Nevermind\n", "\nShania Twain - Up!\n", "\nLights - Little Machines\n", "\nTaylor Swift - 1989\n"); //PreAdded CDs
Collections.sort(CD);
jTextArea1.setText(CD); //it works if i do System.out.println(CD) ? I need it to go to jTextArea1 though.
setText
预计 一个 String
。您有一个包含许多 String
的列表。您必须自己决定如何将这么多 String
组合成一个。
JTextArea 采用 String
参数,而不是 ArrayList
。在继续之前,您需要将 CD ArrayList 转换为字符串(以您认为最佳的任何方法)。
当你打电话时
System.out.println(CD);
相当于这个
System.out.println(CD.toString());
所以你需要的是
jTextArea1.setText(CD.toString());
System.out
是一个 PrintStream
,一个 overload of println
takes an Object
as a parameter,最终调用 toString()
。这就是 System.out.println(CD)
起作用的原因。
相比之下,JTextArea
继承其 setText()
method from JTextComponent
,并且它接受 String
,而不是 Object
。 ArrayList
无法隐式转换为 String
。您可以轻松调用 toString()
显式转换为 String
。
好的,我正在制作一个 CD collection 程序并且一切顺利,因为我一直在学习我的课程,但后来我 运行 陷入了想要让它出现在jTextArea。我敢打赌有一个简单的解决方案,但我找不到。我是新手,任何答案将不胜感激,我也在这里寻找答案,但没有找到我理解的东西。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jButton1.setEnabled(true);
jButton2.setEnabled(false);
jButton3.setEnabled(false);
jButton4.setEnabled(false); //buttons
ArrayList<String> CD = new ArrayList(); //list
Collections.addAll(CD, "\nEd Sheeran - X\n", "\nNirvana - Nevermind\n", "\nShania Twain - Up!\n", "\nLights - Little Machines\n", "\nTaylor Swift - 1989\n"); //PreAdded CDs
Collections.sort(CD);
jTextArea1.setText(CD); //it works if i do System.out.println(CD) ? I need it to go to jTextArea1 though.
setText
预计 一个 String
。您有一个包含许多 String
的列表。您必须自己决定如何将这么多 String
组合成一个。
JTextArea 采用 String
参数,而不是 ArrayList
。在继续之前,您需要将 CD ArrayList 转换为字符串(以您认为最佳的任何方法)。
当你打电话时
System.out.println(CD);
相当于这个
System.out.println(CD.toString());
所以你需要的是
jTextArea1.setText(CD.toString());
System.out
是一个 PrintStream
,一个 overload of println
takes an Object
as a parameter,最终调用 toString()
。这就是 System.out.println(CD)
起作用的原因。
相比之下,JTextArea
继承其 setText()
method from JTextComponent
,并且它接受 String
,而不是 Object
。 ArrayList
无法隐式转换为 String
。您可以轻松调用 toString()
显式转换为 String
。