是否可以将 class 存储在 Java 中的变量中?
Is it possible to store a class in a variable in Java?
我正在尝试做类似的事情:
class test {
Class c;
c[] array = new array[0];
test(Class c_) {
c = c_;
}
}
这样它就可以被普遍使用,并且我在 class 测试中输入的任何 class 都可以工作。我已经尝试过这个确切的事情,但它似乎不起作用。有什么办法可以吗?如果这意味着什么,我也在使用 IDE 处理。
- class 是创建对象的蓝图
- 它在内存中没有物理存在
- 它的实例具有可以存储的存在性
- 所以如果 class 在内存中不存在,它就不能保存在
变量
是,也不是。是的,可以动态创建数组,但不能使用您的语法(并且您应该使用通用类型)。另外,请注意 Java 数组具有固定长度(因此零元素数组不是很有用)。 Java class 名称以大写字母开头。像,
class Test<T> {
private T[] array;
@SuppressWarnings("unchecked")
Test(Class<T> c, int len) {
array = (T[]) Array.newInstance(c, len);
}
public void set(int p, T v) {
array[p] = v;
}
public T[] getArray() {
return array;
}
}
然后是基本的使用演示,
public static void main(String[] args) {
int size = 5;
Test<String> t = new Test<>(String.class, size);
for (int i = 0; i < size; i++) {
t.set(i, String.valueOf(i));
}
System.out.println(Arrays.toString(t.getArray()));
}
产出
[0, 1, 2, 3, 4]
我正在尝试做类似的事情:
class test {
Class c;
c[] array = new array[0];
test(Class c_) {
c = c_;
}
}
这样它就可以被普遍使用,并且我在 class 测试中输入的任何 class 都可以工作。我已经尝试过这个确切的事情,但它似乎不起作用。有什么办法可以吗?如果这意味着什么,我也在使用 IDE 处理。
- class 是创建对象的蓝图
- 它在内存中没有物理存在
- 它的实例具有可以存储的存在性
- 所以如果 class 在内存中不存在,它就不能保存在 变量
是,也不是。是的,可以动态创建数组,但不能使用您的语法(并且您应该使用通用类型)。另外,请注意 Java 数组具有固定长度(因此零元素数组不是很有用)。 Java class 名称以大写字母开头。像,
class Test<T> {
private T[] array;
@SuppressWarnings("unchecked")
Test(Class<T> c, int len) {
array = (T[]) Array.newInstance(c, len);
}
public void set(int p, T v) {
array[p] = v;
}
public T[] getArray() {
return array;
}
}
然后是基本的使用演示,
public static void main(String[] args) {
int size = 5;
Test<String> t = new Test<>(String.class, size);
for (int i = 0; i < size; i++) {
t.set(i, String.valueOf(i));
}
System.out.println(Arrays.toString(t.getArray()));
}
产出
[0, 1, 2, 3, 4]