gpt4 book ai didi

java - 如何获取实例变量的引用?

转载 作者:行者123 更新时间:2023-11-29 05:28:32 24 4
gpt4 key购买 nike

我有以下代码来获取我的类实例变量的值。

public void printFields(Object obj) throws Exception {
Class<?> objClass = obj.getClass();

Field[] fields = objClass.getFields();
for(Field field : fields) {
String name = field.getName();
Object value = field.get(obj);

System.out.println(name + ": " + value.toString());
}
}

假设类A,它的类型是ArrayList。看起来像:

class A
{
private ArrayList list;
}

现在我想获取对该类型list 的引用。可能吗?

因此,一旦我获得引用,ArrayList 中所有可用的方法都应该可以访问。

怎么做?

最佳答案

您可以使用 field.setAccessible(true); 来规避封装。这不一定总是有效:可能会抛出 SecurityException

设置成员 public 并完成它要好得多(如果你拥有类):

class A
{
public ArrayList list;
}

至少你的使用模式是预期的

一旦您获得了列表,您就可以使用该列表中的任何公共(public)方法和字段。

关于java - 如何获取实例变量的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21904838/

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