Dus*_*sen 17 java arrays class return-value
所以我遇到了一些奇怪的东西,我不知道它叫什么,所以我很难找到有关它的信息,因此我的问题在这里.
我遇到了一个问题,如果你创建一个任何类型的数组并在Java中调用此数组上的getClass,你将得到奇怪的回报.我想知道你为什么得到这个特定的回报及其含义.
代码示例如下:
byte[] me = new byte[1];
int[] me2 = new int[1];
double[] me3 = new double[1];
float[] me4 = new float[1];
String[] me5 = new String[1];
Integer[] me6 = new Integer[1];
System.out.println(me.getClass());
System.out.println(me2.getClass());
System.out.println(me3.getClass());
System.out.println(me4.getClass());
System.out.println(me5.getClass());
System.out.println(me6.getClass());
Run Code Online (Sandbox Code Playgroud)
输出是:
class [B
class [I
class [D
class [F
class [Ljava.lang.String;
class [Ljava.lang.Integer;
Run Code Online (Sandbox Code Playgroud)
emo*_*ory 22
Class 的toString方法调用Class的getName方法
以String形式返回此Class对象表示的实体名称(类,接口,数组类,基本类型或void).
如果此类对象表示不是数组类型的引用类型,则返回类的二进制名称,如Java语言规范第二版所指定.
如果此类对象表示基本类型或void,则返回的名称是一个String,它等于与基本类型或void相对应的Java语言关键字.
如果此类对象表示一个数组类,则名称的内部形式由元素类型的名称组成,前面有一个或多个'['字符,表示数组嵌套的深度.元素类型名称的编码如下:
Element Type Encoding boolean Z byte B char C class or interface Lclassname; double D float F int I long J short S类或接口名称classname是上面指定的类的二进制名称.
例子:
Run Code Online (Sandbox Code Playgroud)String.class.getName() returns "java.lang.String" byte.class.getName() returns "byte" (new Object[3]).getClass().getName() returns "[Ljava.lang.Object;" (new int[3][4][5][6][7][8][9]).getClass().getName() returns "[[[[[[[I"
归档时间: |
|
查看次数: |
13432 次 |
最近记录: |