gpt4 book ai didi

java - 如何使用反射从 ArrayList 获取最后一个值?

转载 作者:行者123 更新时间:2023-12-01 06:02:53 24 4
gpt4 key购买 nike

我只是想使用反射获取 ArrayList 中的最后一个值。通常,这是通过执行以下操作来实现的:

String s = ArrayList.get(ArrayList.size()-1);

我尝试过这样做:

String s = Object.get(ClassInstance, Object.get(ClassInstance, ArrayList.size()-1));

显然这不是正确的语法。实现这一目标的正确语法是什么?

编辑:

尝试这样做的原因是因为我正在对我的代码进行单元测试,并且位于我正在测试的类中的 ArrayList 是私有(private)的。我的 boolean 方法之一采用一个参数,我想使用 ArrayList 中的最后一个值来测试它(我不知道该值,因为它是随机生成的,但该值应始终返回 true)。非常感谢任何针对此问题的解决方案。

最佳答案

终于自己解决了这个问题。将代码发布给将来可能需要它的任何人:

MyClass myClass = new MyClass();
Field list = MyClass.class.getDeclaredField("listName");
list.setAccessible(true);
List<String> l = (ArrayList) list.get(myClass);
String s = l.get(l.size()-1);

其中包含的方法需要抛出 NoSuchFieldExceptionIllegalAccessException 才能正常工作。

关于java - 如何使用反射从 ArrayList 获取最后一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53529537/

24 4 0