java 数组成员_Java数组类的成员

这篇博客通过ReflexionAPI展示了Java数组如何实现Cloneable和Serializable接口,同时探讨了数组的length属性。文章指出,虽然数组没有明确声明length字段,但可以通过反射查看其特性。此外,还分析了byte[]类的修饰符问题,指出其不合法的“abstract final”组合。整个分析深入到类的字段和方法,揭示了Java数组的内部工作原理。
摘要由CSDN通过智能技术生成

Reflexion API显示任何Java数组类都实现了接口java.lang.Cloneable和java.io.Serializable。它没有任何成员声明。

我的问题是:

在哪里定义了“长度”?

受保护的Object clone()被公共访问覆盖

与我们一样使用co-variant返回类型(byte []替换Object)的说明符

可以直接将其分配给一个字节[]?

与Cloneable和Serializable关联(IS-A)的地方

定义

此外,byte []类的访问说明符包含“abstract final”,它不是Java中任何类或方法的合法组合。

import java.lang.reflect.*;

public class ArrayExplorer {

public static void main(String[] args) {

explore("Current class:", byte[].class);

byte[] bytes = { 65, 'A' };

System.out.println(bytes.length);

byte[] cloned = bytes.clone();

System.out.println(cloned);

}

private static void explore(String msg, Class> class1) {

if (class1 == null)

return;

System.out.println("**************************************\n" + msg

+ Modifier.toString(class1.getModifiers()) + " " + class1);

// if (class1 == Object.class)

// return;

Field[] fields = class1.getDeclaredFields();

for (Field field : fields) {

System.out.println(field);

}

Method[] methods = class1.getDeclaredMethods();

for (Method method : methods) {

System.out.println(method);

}

explore("Superclass:", class1.getSuperclass());

explore("Classes:", class1.getClasses());

explore("ComponentType:", class1.getComponentType());

explore("DeclaredClasses:", class1.getDeclaredClasses());

explore("DeclaringClass:", class1.getDeclaringClass());

explore("EnclosingClass:", class1.getEnclosingClass());

if (!class1.isInterface()) {

explore("Interfaces:", class1.getInterfaces());

}

}

private static void explore(String msg, Class>[] classes) {

if (classes == null || classes.length == 0)

return;

System.out.println(msg);

for (Class> class1 : classes) {

explore("", class1);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值