ArrayList<String> 无法转换为字符串。

L0s*_*ser -2 java collections arraylist

好的,我正在制作一个 CD 收藏程序,一切都很顺利,因为我按照我的课程进行,但后来我遇到了想让它显示在 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.
Run Code Online (Sandbox Code Playgroud)

rge*_*man 5

System.out是 a PrintStream,并且 的重载println将 anObject作为参数toString()最终在其上调用。这就是为什么System.out.println(CD)有效。

相反, aJTextArea从 继承其setText()方法JTextComponent,并且它接受 aString而不是 an Object。AnArrayList不能隐式转换为 a String。您可以轻松调用toString()String显式转换为 a 。