我有一个下拉列表,我想通过数据库填写 我显示代码
private String maValeur;
private List<SelectItem> mesElements;
public String getMaValeur() {
return maValeur;
}
public void setMaValeur(String maValeur) {
this.maValeur = maValeur;
}
public List getMaliste()
{
ArrayList<String> unelist = new ArrayList();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String serverName = "localhost";
String mydatabase = "gestionticket";
String url = "jdbc:mysql://" + serverName +":3306"+ "/"+ mydatabase; // a JDBC url
String user = "root";
String pass = "";
java.sql.Connection connection = DriverManager.getConnection(url, user, pass);
Statement instruction = (Statement) ((java.sql.Connection) connection).createStatement();
String sql = "select * from gestionticket.client" ;
ResultSet resultat = (ResultSet) instruction.executeQuery(sql);
while(resultat.next()){
String nom=resultat.getString("nom").toString();
unelist.add(nom);
}
//session.close();
} catch (Exception e) {
e.printStackTrace();
}
return (List) unelist;
}
public List<SelectItem> getMesElements() {
if (mesElements == null) {
mesElements = new ArrayList<SelectItem>();
for (String val : getMaliste()) {
mesElements.add(new SelectItem(val));
}
}
return mesElements;
}
错误消息msg出现在行级
for (String val : getMaliste() {
mesElements.add(new SelectItem(val));
}
这是msg错误:
类型不匹配:无法从元素类型Object转换为String
如果您对此编译错误有任何疑问;帮助我
答案 0 :(得分:2)
您的方法在签名中有raw type,
public List getMaliste()
应该是
public List<String> getMaliste()
并且不要在返回时转换为raw类型,
return unelist;
答案 1 :(得分:1)
错误: - 类型不匹配:无法从元素类型Object转换为String。 每当您尝试将Object类型转换为String类型时,您将始终收到此错误,因为Object类型在类层次结构上更高,即Object表示String类型的超类(最终是Java中的所有其他类)。
此错误的解决方案:
每当你有任何返回任何Object类型的方法但你需要将其存储为s String类型时,则在该Object上追加toString()方法。 例如:
public class ObjectToString {
public List<String> getName() {
List<String> list=new ArrayList<String>();
list.add("Andrew Smith");
list.add("Jen Hawkins");
return list;
}
public static void main(String[] args){
ObjectToString ots=new ObjectToString();
String names=ots.getName().toString();
System.out.println(names);
}
}
这里getName()方法的返回类型是List类型,你将它的内容分配给main()中的String类型变量,除非你在getName()上使用toString()方法,否则这是不可能的。