java中Object[] objects =(Object[]) new float[2];和Object object=(Object)new float[2];区别
3个回答
展开全部
第一条代码是错的。错在“=”右面,你把一个float类型的数组转为Object的,这是不对的。
先说说第二个为什么对。你把一个float类型的数组强制转换为了Object,它对是因为,java中的所有类型都是Object,你把一个Object的子类的一个实现上传给Object。甚至你可以不强转,直接Object object=new float[2];,java认为这是安全的,因为你是把一个更具体的类型转换为了一个更一般的类型。你还可以Object o = new ArrayList<String>();Object m = new HashMap<String, String>();Object i=new int[2];
明白了吧,java中你可以把所有类型都当做Object,而不能当做Object[]。换句话说Object[]也是一种Object。
还不明白的话,试试Object s = new Object[2];行不行。
先说说第二个为什么对。你把一个float类型的数组强制转换为了Object,它对是因为,java中的所有类型都是Object,你把一个Object的子类的一个实现上传给Object。甚至你可以不强转,直接Object object=new float[2];,java认为这是安全的,因为你是把一个更具体的类型转换为了一个更一般的类型。你还可以Object o = new ArrayList<String>();Object m = new HashMap<String, String>();Object i=new int[2];
明白了吧,java中你可以把所有类型都当做Object,而不能当做Object[]。换句话说Object[]也是一种Object。
还不明白的话,试试Object s = new Object[2];行不行。
展开全部
前者是new了一个float类型的数组,该驻足有两个元素。然后将它强制转换为一个Object类型的数组。数组里面的每一个元素都是object类型的对象。
后者是new了一个float类型的数组,该驻足有两个元素。然后将它强制转换为一个Object类型的对象。
后者是new了一个float类型的数组,该驻足有两个元素。然后将它强制转换为一个Object类型的对象。
追问
那第一个为什么报错啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
围观。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询