无法将java.util.Vector转换为java.util.ArrayList-将列表转换为ArrayList
我有以下代码无法将java.util.Vector转换为java.util.ArrayList-将列表转换为ArrayList,java,jpa,Java,Jpa,我有以下代码 public List<Item> getDbItems() { ArrayList<Item> dbItems = new ArrayList<>(); EntityTransaction entr=em.getTransaction(); entr.begin(); TypedQuery<Item> query = em.createQuery("SE
public List<Item> getDbItems()
{
ArrayList<Item> dbItems = new ArrayList<>();
EntityTransaction entr=em.getTransaction();
entr.begin();
TypedQuery<Item> query = em.createQuery("SELECT i FROM Item i", Item.class);
dbItems = (ArrayList<Item>) query.getResultList();
em.getTransaction().commit();
return dbItems;
}
public List getDbItems()
{
ArrayList dbItems=新的ArrayList();
EntityTransaction entr=em.getTransaction();
entr.begin();
TypedQuery query=em.createQuery(“从Item i中选择i”,Item.class);
dbItems=(ArrayList)query.getResultList();
em.getTransaction().commit();
归还物品;
}
我需要它返回ArrayList而不是数组。是否有返回ArrayList的查询?更改:
dbItems = (ArrayList<Item>) query.getResultList();
dbItems=(ArrayList)query.getResultList();
为此:
dbItems = new ArrayList<Item>(query.getResultList());
dbItems=newarraylist(query.getResultList());
现在,从设计的角度来看,方法的客户机应该决定他们想要使用哪种实现,尽可能使用抽象/接口。忘记ArrayList吧,只需在查询方法周围使用List,然后方法的客户机就必须决定如何使用该列表以及他们想要的实现
此外,对于单个SELECT查询,您不需要事务
public List<Item> getDbItems()
{
TypedQuery<Item> query = em.createQuery("SELECT i FROM Item i", Item.class);
return query.getResultList();
}
public List getDbItems()
{
TypedQuery query=em.createQuery(“从Item i中选择i”,Item.class);
返回query.getResultList();
}
您必须了解什么是接口和类:
- 这里的接口是List,它将为您提供一组可以调用的函数/方法
- 您将要实例的类,在本例中为ArrayList,您对您说,如何执行为接口列表提供的方法,因此现在,您的代码可以编译,并且可以正常运行,请执行以下操作:
public List<Item> getDbItems() { List<Item> dbItems = new ArrayList<>(); EntityTransaction entr=em.getTransaction(); entr.begin(); TypedQuery<Item> query = em.createQuery("SELECT i FROM Item i", Item.class); dbItems = query.getResultList(); em.getTransaction().commit(); return dbItems; }
public List getDbItems() { List dbItems=new ArrayList(); EntityTransaction entr=em.getTransaction(); entr.begin(); TypedQuery query=em.createQuery(“从Item i中选择i”,Item.class); dbItems=query.getResultList(); em.getTransaction().commit(); 归还物品; }
ArrayList
cast的观点是什么?为什么不使用更多obivous(列表)
?我需要它来返回ArrayList-不,你不认为这一切都归结为继承101和对接口进行编码。更多的信息将有助于提供解决方案。为什么标题中提到java.util.Vector
?