java类型转换 java 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下面这样吗?如果你在编译时就知道应该转为什么类型 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); } } java运行期没有泛型,如果你坚信传入List的每个元素都是你所想变的类型,做个转型就好 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; } 用关键字instanceof,判断出其类型,然后再强制转换。下面是我的示例代码: 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 + "]"; } } 用关键字instanceof,判断出其类型,然后再强制转换。下面是我的示例代码: 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 + "]"; } } 你需要的是做成一个方法,那就传入一个源list,一个目的list,遍历源list将里面的对象转成需要的对象类型,然后存在目的list中间就可以了。然后返回目的list 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))); } } } 这段代码已满足要求,指定类型不确定所以必须新建一个目的集合来满足。private static <T extends Object> void castlist(List<Object> list,List<T> list1) 函数头中, <T extends Object> 是要求参数列表中对象继承Object. java中有convert吗?convert函数是我自己写的 按钮凸起后奇怪现象 怎么做一个java界面布局 求救啊,关于JMX如何自定义显示样式啊? 对结果疑惑,请高手解答 怎样在一个窗口中调用另一个窗口 LINUX下的JAVA串口通讯问题,如能解决,不胜感激 JBUILDER 6 FOR LINUX 的注册码谁有啊 请问谁对用blowfish来做JAVA的加密解密比较熟悉,请帮忙写个文本的加密解密类,(我这有一个但是写得不很成熟不能解密) 在同一个程序里,string能不能反复new? 如何获得上一组件的的位置信息? 结果为什么s1的值是helloword 请大神指点,感激不尽
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);
}
}
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;
}
//构造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,里面存了各种类型的数据
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 + "]";
}
}
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)));
}
}
}
private static <T extends Object> void castlist(List<Object> list,List<T> list1)
函数头中, <T extends Object> 是要求参数列表中对象继承Object.
java中有convert吗?
convert函数是我自己写的