以下代码我遇到这样的错误如何解决这个问题。
:警告:非varargs调用varargs方法,最后一个参数的参数类型不精确; ListView.getItems()中的addAll(广告)。 转换为Object以进行varargs调用 转换为Object []以进行非varargs调用并禁止此警告
String []ad = new String[100];
String []bd = new String[100];
String []cd = new String[100];
int i=0;
try {
Class.forName(m_Driver2);
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
String query2 = "";
try {
//Create connection object
m_Connection2 = DriverManager.getConnection(m_Url2, "root", "");
//Create Statement object
m_Statement2 = m_Connection2.createStatement();
query2 = "SELECT * FROM diziler";
//Execute the query
m_ResultSet2 = m_Statement2.executeQuery(query2);
System.out.println("TTTTTTTTTTT");
while (m_ResultSet2.next()) {
//System.out.print(m_ResultSet.getString(1));
//cBox.getItems().addAll(m_ResultSet.getString(1));
ad[i]=m_ResultSet2.getString(1);
bd[i]=m_ResultSet2.getString(2);
//files=m_ResultSet.getString(3);
//File f4 = new File(files);
i++;
System.out.print(", ");
System.out.print(m_ResultSet2.getString(1));
System.out.print(", ");
System.out.print(m_ResultSet2.getString(2));
System.out.print("\n"); //new line
}
ListView.getItems().addAll(ad);
}
catch (SQLException ex) {
ex.printStackTrace();
System.out.println(query2);
}
finally {
try {
if (m_ResultSet2 != null)
m_ResultSet2.close();
if (m_Statement2 != null)
m_Statement2.close();
if (m_Connection2 != null)
m_Connection2.close();
}
catch (SQLException ex) {
ex.printStackTrace();
}
}
答案 0 :(得分:0)
解决方案
定义ListView时指定ListView类型。
ListView<String> listview = new ListView<>();
说明的
如果你没有告诉ListView它是用于字符串列表,那么当你尝试通过addAll方法将数组添加到listView时,Java编译器警告它不能工作如果您尝试将数组中的各个项目作为列表中的不同项目添加到支持列表中,或者将数组本身添加为列表中的单个项目。但是当你告诉ListView它是一个字符串列表时,编译器足够聪明,知道你不可能想要将列表数组添加为列表中的单个项目,而是想要添加每个个体数组中的项目到列表中。此外,当您指定ListView的类型时,可以使用更强类型检查,并且不再可能错误地向列表中添加不正确类型的内容。
示例代码
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ListView;
import javafx.stage.Stage;
public class ListLoader extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
String[] data = { "apple", "orange", "pear" };
ListView<String> listview = new ListView<>();
listview.getItems().addAll(data);
stage.setScene(new Scene(listview));
stage.show();
}
}
无关建议
对您的代码提出了几条附带意见: