62,621
社区成员
发帖
与我相关
我的任务
分享import java.util.ArrayList;
import java.util.List;
public class Cast {
public static void main(String[] args){
/*如何将一个List<object> 强制转换为一个List<指定类型>
* 指定类型根据场景不同会发生变化,也就是说指定类型是不确定的。*/
List<Object> list=new ArrayList<Object>();
List<Number> list1=new ArrayList<Number>();
/**把对象list的全部元素由Object转换成指定类型T*/
castlist(list,list1);
System.out.println(list1);
}
private static <T extends Object> void castlist(List<Object> list,List<T> list1) {
for(int i=0;i<list.size();i++){
list1.add((T)(list.get(i)));
}
}
}


public static void main(String[] args) {
//构造list,里面存了各种类型的数据
List<Object> list=new ArrayList();
list.add("abc");
list.add('d');
list.add(90);
list.add(new Person("张三",30));
//创建输出
StringBuffer buffer=new StringBuffer();
for(int index=0;index<list.size();index++){
Object obj=list.get(index);
buffer.append(index).append("\t");
if(obj instanceof String){
buffer.append("type=String").append("\t");
String str=(String) obj;
buffer.append("value=").append(str);
}else if(obj instanceof Character){
buffer.append("type=char").append("\t");
char ch=(Character) obj;
buffer.append("value=").append(ch);
}else if(obj instanceof Integer){
buffer.append("type=int").append("\t");
int i=(Integer) obj;
buffer.append("value=").append(i);
}else if(obj instanceof Person){
buffer.append("type=class,className=Person").append("\t");
Person person=(Person) obj;
buffer.append("value=").append(person);
}
buffer.append("\n");
}
System.out.println(buffer.toString());
}
static class Person{
String name;
int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
@Override
public String toString() {
return "Person [age=" + age + ", name=" + name + "]";
}
}
public static void main(String[] args) {
List<Object> list = new ArrayList<Object>();
list.add(1224);
list.add(124);
List<Integer> list2 = change(list,Integer.class);
for(Integer i:list2){
System.out.println(i);
}
}
/**
*
* @param a 任意List
* @param clazz 目标泛型的class
* @return
*/
@SuppressWarnings("unchecked")
public static<T> List<T> change(List<?> a,Class<T> clazz){
return (List<T>)a;
}
public static void main(String[] args) {
List<Object> ori = new ArrayList<>();
ori.add(20);
ori.add(2);
ori.add(10);
List<Integer> list = new ArrayList<>();
convert(ori, list);
for (Integer i : list) {
System.out.println(i);
}
}
@SuppressWarnings("unchecked")
public static <T> void convert(List<Object> ori, List<T> list) {
for (Object o : ori) {
list.add((T)o);
}
}