gpt4 book ai didi

Java - 如何通过反射检查数组长度(类中的字段)

转载 作者:行者123 更新时间:2023-12-01 06:51:18 26 4
gpt4 key购买 nike

我有以下类(class):

public class GeneralClass
{
public int x;
public int[] arr = new int[3];
}

以及以下逻辑:

public void loadClass(Class cls) {          
Field[] fields = cls.getDeclaredFields();
for (Field field : fields) {
if (field.getType().isArray()) {
// How can I print the array length ?
}
}
}

我如何知道数组的大小(长度)是多少?

最佳答案

您可以使用Array.getLength,但是您需要提供一个具体实例,这就是我使用cls.newInstance()的原因(假设没有- arg 构造函数)

public static void loadClass(Class<?> cls) throws IllegalArgumentException, IllegalAccessException, InstantiationException {          
Field[] fields = cls.getDeclaredFields();
for (Field field : fields) {
if (field.getType().isArray()) {
int length = Array.getLength(field.get(cls.newInstance()));
System.out.println(length);
}
}
}

请注意,如果该字段是静态的,您可以在类级别获取它,因此 int length = Array.getLength(field.get(null)); 可以工作。

关于Java - 如何通过反射检查数组长度(类中的字段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27047843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com