gpt4 book ai didi

java - Android/java中调用类的私有(private)对象的方法

转载 作者:行者123 更新时间:2023-12-01 08:04:59 27 4
gpt4 key购买 nike

我有以下类(class):

public class Foo {
private View myButton;
...
}

我想调用 foo.myButton.performClick()。但我无法修改 Foo 类,因为它是一个库。我该怎么做?

我正在尝试

Field mField= Foo.class.getDeclaredField("myButton");

但我不知道如何从字段获取 View 引用

谢谢

最佳答案

Field mField = Foo.class.getDeclaredField("myButton")

您将获得该字段规范的引用。其中包含的数据包括访问器、它所保存的值的类型等。如果您想获取 View 的引用,您需要执行以下操作:

View viewReference = (View)mField.get(fooInstance);

要访问私有(private)字段(使用如下所述的反射),您需要确保该字段可访问:

mField.setAccessible(true);

我建议您在获得引用后恢复该标志。根据您面临的情况,可能有更好的解决方案。

祝你好运

关于java - Android/java中调用类的私有(private)对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501600/

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