JAVA的反射能否调用字段的方法?
public final class Xx{
private Button button = new Button();
...
}
如以上的类,在使用时它会创建一个按钮,我想通过反射来调用button的方法,以此在外部来修改它的某些样式,请问一下,能否做的到?
另一种方法是想通过继承改写的方式,但是它又是被final所修饰的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你反射,拿到里面的属性,转换成对象,拿到后你不就可以为所欲为了。
反射调方法,需要:
Class
,Method
,参数,Class
的对象能拿到就能调,你这个场景都能拿到,所以能调
第一个问题:反射可以做到。
第二问题:继承不行的话,可以通过组合的方式扩展呀。
1.你可以通过反射获取到Class Xx中的所有字段,然后拿到Button字段通过反射来创建Button对象
2.final修饰的类是无法再去继承的,你可以看一下Button类中你要调用的方法,看一下其上级是否留有可扩展的空间,没有的话你只能考虑一下是否可以通过AOP或者代理模式来实现你要的功能了
可以。
1.在反射获得class对象后,调用
getDeclaredFiled()
方法获得所有控制类型(private、public)的字段。2.final修饰的不能被继承。对于该类:没有实现接口,所以可以考虑使用Cglib动态代理,生成子类进行目标类增强