Java 如何转换对象数组?
我是java新手,正在使用netbeans探索JavaEE应用程序 我有密码: userbean中的方法:Java 如何转换对象数组?,java,jakarta-ee,arraylist,Java,Jakarta Ee,Arraylist,我是java新手,正在使用netbeans探索JavaEE应用程序 我有密码: userbean中的方法: public List userList() { Query q = em.createNativeQuery("select username,address from tbuser"); Iterator i = q.getResultList.iterator; ArrayList<UserState> userinfo = new ArrayList&
public List userList() {
Query q = em.createNativeQuery("select username,address from tbuser");
Iterator i = q.getResultList.iterator;
ArrayList<UserState> userinfo = new ArrayList<UserState>();
while (i.hasNext()) {
Vector result = (Vector) i.next(); // <- HERE
UserState us = new UserState();
us.setName((String) result.get(0));
us.setAddress((String) result.get(1));
userinfo.add(us);
}
return userinfo;
}
公共列表用户列表(){
Query q=em.createNativeQuery(“从tbuser中选择用户名、地址”);
迭代器i=q.getResultList.Iterator;
ArrayList userinfo=新的ArrayList();
while(i.hasNext()){
Vector result=(Vector)i.next();//我怀疑代码是否是这样工作的,诸如hasNext()
之类的方法缺少括号。如果您复制了代码,请再次复制,因为让我们猜测您的代码不会提高答案的质量
您的问题是希望从向量中访问元素。但向量中对象的类型不是Vector
,而是另一种类型的集合。您希望检索此向量的元素(这很好),但尝试将其强制转换为Vector
,但失败
由于我无法在运行时看到向量中将包含哪种类型的对象,因此首先可以在当前错误发生的行之前使用System.out.println(I.next().getClass().getCanonicalName());
。这将打印向量元素的类型。嗯,最好是直接在JPA查询中创建DTO:
public List userList() {
Query q = em.createNativeQuery("SELECT new UserState(username,address) FROM tbuser");
return q.getResultList();
}
类似这样的内容(这是未验证的代码)此代码工作不正常,至少有两个错误导致此代码无法编译。请将其替换为实际编译的代码,并确保其格式正确(请阅读编辑器旁边的格式帮助)。Vector
是一个旧版Java 1.0类。因为Java 1.2(已经推出十多年了),这里有改进的列表
。请确保您没有阅读太旧或太差的教程,例如(颤栗)roseindia.net……我们没有提到的教程。