Java中, 经常会碰到这样一个设计, 一个类需要外部传入一个List
虽然Circle 类是Shape类的子类, 但 List
下面是普通类支持List
1. setter 采用 Object[] 传入数据;
2. 在返回List
⒊ 为了能让这个普通类知道List
package test;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) throws IOException {
//准备List 数据
List myList=new ArrayList();
myList.add("abc");
ListTProcessor processor=new ListTProcessor();
//将List转成数组形式, set到ListTProcessor目标对象中
processor.setMyListData(myList.toArray());
processor.setMyItemClazz(String.class);
//从ListTProcessor获取原来的List, 需要传入 Circle[].class
List myList2=processor.getMyList(String[].class);
System.out.println(myList2.get(0));
System.in.read();
}
}
class ListTProcessor {
private Object[] myListData;
private Class myItemClazz ;
public Class getMyItemClazz() {
return myItemClazz;
}
public void setMyItemClazz(Class myItemClazz) {
this.myItemClazz = myItemClazz;
}
public Object[] getMyListData() {
return myListData;
}
public void setMyListData(Object[] myListData) {
this.myListData = myListData;
}
public List getMyList(Class extends T[]> clazz) {
//将object[] 转成 T[] 数组
T[] array1 = Arrays.copyOf(myListData, myListData.length, clazz);
List lst = Arrays.asList(array1);
return lst;
}
}



