首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何转换对象数组?

如何转换对象数组?
EN

Stack Overflow用户
提问于 2011-10-27 15:10:52
回答 2查看 246关注 0票数 0

我对java和使用netbeans开发java应用程序都很陌生。

我有密码:

方法在userbean中:

代码语言:javascript
复制
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;

}

我使用这种方法构造jsf数据表,并在netbeans6.5和glassfish2中很好地工作。

但是,当我使用相同的方法时,除了在netbean 6.9中将向量更改为arraylist外,

还有玻璃鱼3--我得到了班上的演员

运行时异常:不能将对象转换为java.util.list;

有人知道怎么做吗?谢谢。。

EN

回答 2

Stack Overflow用户

发布于 2011-10-27 15:20:04

我怀疑代码是否像这样工作,像hasNext()这样的方法缺少括号。如果您复制了代码,请再次这样做,因为让我们猜测您的代码不会提高答案的质量。

你的问题是你想要从向量中访问一个元素。但是向量中的对象类型不是Vector,而是一种不同类型的集合。您希望检索该向量的一个元素(这非常好),但随后尝试将其转换为Vector,这将失败。

由于我无法在运行时看到向量中的哪种类型的对象,所以首先可以在当前错误发生的行之前使用System.out.println(i.next().getClass().getCanonicalName());。它打印向量元素的类型。

票数 0
EN

Stack Overflow用户

发布于 2013-11-09 12:21:29

嗯,最好是直接在JPA查询中创建DTO:

代码语言:javascript
复制
public List userList() {

  Query q = em.createNativeQuery("SELECT new UserState(username,address) FROM tbuser");

  return q.getResultList();

}

类似这样的东西(这不是经过验证的代码)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7918067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档