我有一个arraylist(eg.CustInfo),它包含java类的对象集合(Cust_details,Cust_Auth),后者又为已定义的变量(例如,.cust_name,Cust_addr)集合了值。
现在我的问题是我有一个新类(例如Priviliged_Cust),它有一些变量,其值必须从arraylist中添加的对象中获取。
我试图将arraylist强制转换为新类并使用get(index)获取数据,但它抛出了castException。
请帮帮我!!!
附加说明,
首先,运行查询并将结果映射到相应类的相应变量中 在setter方法的帮助下,使用该特定类的对象的实例。 然后将此对象添加到Arraylist中并返回Arraylist。
其次,这发生在一组查询中,并且数据被映射到各自的类和 将对象添加到arraylist中,并将相应的arraylists返回到相应的调用方法。
我的问题是,我创建了一个新类,它包含与之前的类相同的字段 它还需要映射到与arraylist中的上述类相同的变量 包含需要映射的字段值的对象。
由于查询只返回Arraylist,我需要从模型中获取对象 那么我需要分别匹配每个字段。
希望这些信息有所帮助。
答案 0 :(得分:1)
不要使用集合来存储彼此无关的数据。对这些值使用带有getter和setter的成员变量。然后,只需调用getter即可获得所需的任何值。
如果要创建一个包含现有数据值的新Object,请不要尝试转换数据。只需创建新的Object并使用构造函数参数为其赋值。
答案 1 :(得分:0)
我建议您使用泛型来检查集合类型。
List<CustInfo> custList = ...
CustInfo ci = custList.get(n); // no cast required.
答案 2 :(得分:0)
ArrayList<Priviliged_Cust> CustInfo = new ArrayList<Priviliged_Cust>();
使用泛型
答案 3 :(得分:0)
首先,我并不完全了解您如何构建代码,一些代码示例可以帮助我们更好地理解。
说我猜您的问题是您有anObject
和anotherObject
,并且您希望anotherObject
拥有与anObject
相同的属性。有几种方法可以解决这个问题。
两种简单的方法包括:
anotherObject
延伸 anObject
(继承)
让anotherObject
包含 anObject
(作文)
答案 4 :(得分:0)
答案 5 :(得分:0)
就像其他人已经发布过的那样,要破解你想要回答的内容有点难。
我的问题是你有一个包含类对象的ArrayList,并且你想将一些对象细节从其中一个转移到另一个类(称为Priviliged_Cust)
因此:
<BaseClass> temp = <ArrayList-name>.get(index); // puts the desired object into a new reference
Priviliged_Cust newCust = new Priviliged_Cust (temp); // copies the details of the object referred by temp
//and instantiates a new Priviliged_Cust from it.
只有在Priviliged_Cust类中有一个构造函数接受一个对象作为参数,然后将基础的详细信息复制到新类中时,这才有效。