【发布时间】:2014-08-30 16:02:13
【问题描述】:
我已经定义了一个自定义的ListModel 作为其他一些类的内部类,其中包含一些数据。为了填充ListModel,我查询一个数据库文件并选择其中的数据,如下面的代码所示。 JList 使用
这个ListModel。
我不明白的是“使用未经检查或不安全的操作”。当我使用 -Xlint 编译时,我收到警告:
“缺少泛型类 DefaultListModel<E> 的类型参数”
我的问题是下面我的代码第一行中的<E> 是什么:
public class SalListModel extends DefaultListModel<E=?>{
String defaultSearch="*";
String salName=defaultSearch;
//inner class constructor
public SalListModel(){
try{
//connection creates the database if it does not exist
Class.forName("org.sqlite.JDBC");
Connection c=
DriverManager.getConnection("jdbc:sqlite:"+dbfile);
Statement st=c.createStatement();
String sql;
sql="select "+salName+" from "+tablename+
" ORDER BY "+name[0]+" ASC;"; //alphabetical order
ResultSet rs=st.executeQuery(sql);
while (rs.next()){
addElement(rs.getString(name[0])+" "+rs.getString(cnp[0]));
}
rs.close();
st.close();
c.close();
}
catch (ClassNotFoundException cnfe){
System.out.println("SQL SalListModel class not found: "+
cnfe.getMessage());
}
catch (SQLException sqle){
System.out.println("SalListModel SQL exception:"+
sqle.getMessage());
}
}
}
【问题讨论】:
-
你必须使用泛型类型,在这篇文章中几乎相同的问题stackoverflow.com/questions/15718217/…
-
回答了我的问题。
标签: java swing jdbc jlist defaultlistmodel