为了账号安全,请及时绑定邮箱和手机立即绑定

登录Java-每次变量更改时自动转储变量值的任何方法

登录Java-每次变量更改时自动转储变量值的任何方法

吃鸡游戏 2021-05-13 18:01:21
我正在寻找一种方法,只要它改变例如转储变量的值。到stdout,而无需手动编写日志记录或println代码,以便我可以检查动态发生的情况。如果可能,还应包括类名称和源文件行号。例如,具有以下内容:public class SomeClass {    public static void main(java.lang.String[] args) {        someVariableA = 0;        someVariableB = 5;        someVariableC = 8;        someVariableD = someVariableA + someVariableB;        someVariableD = 9;    }}应该有一些输出,例如:someVariableD = 5 at SomeClass.main(SomeClass.java:[lineNumber])someVariableD = 9 at SomeClass.main(SomeClass.java:[lineNumber])我应该能够在不编写太多代码的情况下执行此操作,并在不删除太多代码的情况下禁用此功能。它应该能够显示对每个变量的所有更改。使用log4j之类的日志记录框架,我仍然必须编写代码以转储变量?我可以使用库/框架,Java编译器或JVM中的设置或某些IDE来执行此操作吗?
查看完整描述

2 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

这就是为什么类不应该依赖于暴露状态,也就是字段。

因为没有机制可以在某些“其他”对象更改此类公共变量时通知所有者。

如果您希望收到有关此类情况的通知,可以将状态设为私有,但可以提供更新状态的方法。然后,您可以在此之上使用观察者模式,以便任何感兴趣的对象都收到有关“属性更改”的通知。

出于调试目的,您当然可以对变量进行监视。它将使用某种检测手段,以便对变量的分配实际上成为方法调用。



查看完整回答
反对 回复 2021-05-26
  • 2 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信