java,两种输出结果相同,有啥区别了

它们之间的区别在哪,有没有啥不好的地方


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

public class Abc {
    public static void main(String[] args) {
        List list=new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        System.out.println("第一种输出:");
        for(Object object:list){
            System.out.println(object);
        }
        System.out.println("第二种输出:");
        for(Object object:list){
            String str=(String) object;
            System.out.println(str);
        }
    }
}

区别在于,如果list添加进了非字符串类型,第二种输出会对它进行一次字符串的强制转换,虽然可能无法判断异常值,但是可以确保输出值是字符串类型
因为数组里允许插入各种类型的值,第一种的话就可能输出五花八门的类型了
好不好这种可能看你实际需求,就比如list能否添加非字符串类型,或者你取值需要的一定是字符串吗
如果我的回答对你有帮助的话,还希望能给一个采纳呀,非常感谢

img
看懂了不

只是输出的话没什么区别,Object是String的父类,String的自带方法比Object要多,一般都是用String