加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

反思Java

发布时间:2020-12-14 06:08:28 所属栏目:Java 来源:网络整理
导读:参见英文答案 Accessing private variables in Java via reflection ????????????????????????????????????1个 ????????????Access private object using java reflection api????????????????????????????????????2个 我只是搞砸了一个机会,没有回答2个问题

参见英文答案 > Accessing private variables in Java via reflection ????????????????????????????????????1个
>????????????Access private object using java reflection api????????????????????????????????????2个
我只是搞砸了一个机会,没有回答2个问题.我仍然不知道答案,所以寻找它们:

[1]你有一个带有私有变量的Java类,没有getter / setter方法.你如何修改这些变量?

我的回答:你不能这样做,私有变量无法从外部访问.
采访者:正确答案是“使用反思”.

[2]您使用哪种反射方法来完成上述操作?
我的回答:我不确定.
采访者:再见.

根据我的经验,我(1)检查类是否存在(2)创建实例(3)检查方法是否存在(4)调用方法(5)继续使用类的实例.当然,我会捕获类似ClassNotFound和MethodInvocation的异常.但是有一个修改私有变量的技巧吗?人们这样做吗? TIA.

最佳答案
鉴于这种:

You have a Java class with private variables and no getter/setter
methods. How do you modify such variables?

我的回答是你不需要特定的setter / getter,你只需要在其他非特定方法中修改它们.在许多情况下,可以将setter / getter视为暴露实现.

为了使字段可访问,您必须调用Field.setAccessible().

这是我不知道的那种话题,如果/当我使用它时必须查找(我不记得我上次使用它时).对于面试官如此挂起,这似乎有点不寻常.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读