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

我正在寻找一种方法,只要它改变例如转储变量的值。到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来执行此操作吗?


吃鸡游戏
浏览 133回答 2
2回答

至尊宝的传说

这就是为什么类不应该依赖于暴露状态,也就是字段。因为没有机制可以在某些“其他”对象更改此类公共变量时通知所有者。如果您希望收到有关此类情况的通知,可以将状态设为私有,但可以提供更新状态的方法。然后,您可以在此之上使用观察者模式,以便任何感兴趣的对象都收到有关“属性更改”的通知。出于调试目的,您当然可以对变量进行监视。它将使用某种检测手段,以便对变量的分配实际上成为方法调用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java