Java 中内部类数组的初始化方式取决于其类型:匿名内部类数组长度固定。本地内部类("static")和成员内部类数组的长度在初始化后可动态调整,但需使用 Arrays.copyOf() 等方法。

Java 内部类数组初始化
Java 内部类数组的初始化方式取决于内部类的类型:
1. 匿名内部类数组
// 匿名内部类数组长度固定
MyClass[] arr = new MyClass[] {
new MyClass() { /* 匿名内部类实现 1 */ },
new MyClass() { /* 匿名内部类实现 2 */ },
// ...
};2. 本地内部类数组("static" 内部类)
立即学习“Java免费学习笔记(深入)”;
// 本地内部类数组长度固定
MyClass.InnerClass[] arr = new MyClass.InnerClass[] {
new MyClass.InnerClass(),
new MyClass.InnerClass(),
// ...
};3. 成员内部类数组
示例:创建一个成员内部类数组,用于存储 String 对象
public class OuterClass {
public class InnerClass {
private String value;
public InnerClass(String value) {
this.value = value;
}
}
public void createInnerClassArray(String[] values) {
// 创建指定长度的成员内部类数组
InnerClass[] arr = new InnerClass[values.length];
// 逐个初始化数组元素
for (int i = 0; i < arr.length; i++) {
arr[i] = new InnerClass(values[i]);
}
}
}使用示例:
OuterClass outer = new OuterClass();
String[] values = { "A", "B", "C" };
outer.createInnerClassArray(values);注意事项:
- 内部类数组的长度必须在初始化时指定。
- 匿名内部类数组只能在初始化时创建,无法动态调整长度。
- 本地内部类和成员内部类数组的长度可以在初始化后动态调整,但需要使用
Arrays.copyOf()或其他方法。











