java 集合 类型转换异常

大佬们,这个为什么会报错,把它传进入不是转成Object类型,下面转成Object转String怎么是报integer转String

public static void main(String[] args) {
        List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        //list.add(10); // 会报类型转换异常(ClassCastException)
        System.out.println(list);
        for (Object obj1 : list) {
            String str1 = (String)obj1;
            System.out.println(str1);
        }

 

你可以指定Object类

 

List<Object> list = new ArrayList<>();
list.add("a");
list.add(1);

import java.util.ArrayList;
import java.util.List;

public class ArrayListTestAsk {

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add(10); // 会报类型转换异常(ClassCastException)
        System.out.println(list);
        for (Object obj1 : list) {
            String str1 = (String) obj1.toString();
            System.out.println(str1);
        }
    }
}
 

[a, b, c, 10]
a
b
c
10

import java.util.ArrayList;
import java.util.List;

public class ArrayListTestAsk {

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add(10); // 会报类型转换异常(ClassCastException)
        System.out.println(list);
        for (Object obj1 : list) {
            String str1 = obj1.toString();
            System.out.println(str1);
        }
    }
}
 

[a, b, c, 10]
a
b
c
10
 

for (Object obj1 : list) {

String str1 = (String)obj1;

System.out.println(str1);

}  因为你这个   强转 String str1 = (String)obj1,上面你写的   list.add(10)     10没法转成 字符串 

大佬们,是为什么,不是如何解决。