new Class[] { String[].class } 和 new Object[] { new String[0] } 是什么意思?

new Class[] { String[].class }

new Object[] { new String[0] }
在程序中看到的,我怎么就是理解不了
这两个数组中的{ }里面是什么意思?
按正常情况下,应该放新建的数组里的数值。
最新回答
浅夏轻唱

2024-04-26 00:13:57

Class[] a=new Class[]{String[].class};
Object[] b=new Object[]{new String[0]};
生成2个新的数组,第一个数组里存的是Class类型,第二个存放的是Object类型.
第一个把String[].class作为初始值赋给了Class[0],即[Ljava.lang.String
第二个吧new String[0]作为初始值赋给了Object[0];这2个语法楼主肯定都运行过没有错误,你自己System.out.println(a[0]);
System.out.println(b[0])就能知道里面究竟是什么东西了
吥荟吢庝

2024-04-26 00:39:02

Class[] a=new Class[]{String[].class};
Object[] b=new Object[]{new String[0]};
生成2个新的数组,第一个数组里存的是Class类型,第二个存放的是Object类型.
第一个把String[].class作为初始值赋给了Class[0],即[Ljava.lang.String
第二个吧new String[0]作为初始值赋给了Object[0];这2个语法运行过没有错误
笙歌白云上

2024-04-26 08:00:41

匿名的两个数组,第一个是类型为Class[]的数组,它长度为1,存放了一个String[]的类型。
第二个是类型为Object[]的数组,它长度为1,存放了一个匿名String[],长度为1

PS:谁这么变态!这么用!
叶舞霓裳

2024-04-26 04:40:53

类的实例是在堆中产生的,那么new一个数组对象呢,其实也是在堆中,所以数组也可以看做一个类,所有的具有相同的类型的且维度一样的共享一份字节码这也是String[].class的由来