我有这样的方法

public static LinkedList<Object> getListObjectWithConditionInXMLFile(String className){
       LinkedList<Object> lstObj = new LinkedList<Object>();
       if(className.equals("Customer")){
            //read Data from XML File
            Customer customer = ...;
            lstObj.add(customer);
       }
       ....
       return lstObj;
}


之后,我调用此方法并想要强制转换:

LinkedList<Customer> lstCustomer = (LinkedList<Customer>()) getListObjectWithConditionInXMLFile("Customer");


但是它不能投。
如何从LinkedList投射到LinkedList?
请帮助我 !非常感谢 !

最佳答案

您可以将方法重构为如下形式:

public static <E> LinkedList<E> getListObjectWithConditionInXMLFile(Class<E> type){
       LinkedList<E> lstObj = new LinkedList<E>();
       if (type.equals(Customer.class)) {
           Customer customer = ...
           lstObj.add((E)customer);
       }
       return lstObj;
}


通过使方法通用并传递Class参数,您可以返回正确类型的列表。

你可以这样称呼

List<Customer> l = getListObjectWithConditionInXMLFile(Customer.class);

关于java - 将LinkedList <Object>强制转换为LinkedList <Customer>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18662669/

10-10 12:24
查看更多