Java无法设置对象的属性

时间:2018-03-18 11:00:50

标签: java

这真的很奇怪,我已经使用名为S.Buffer的私有字段定义了一个类consumed

public static class Buffer implements Output, Appendable, CharSequence {

    /**
     * The value is used for character storage.
     */
    private char[] value;

    /**
     * The count is the number of characters used.
     */
    private int count;

    /**
     * track if {@link #toString()} method is called
     */
    private boolean consumed;
    ...
}

还有一个名为reset的方法:

    public Buffer reset() {
        this.setLength(0);
        this.consumed = false;
        return this;
    }

如上所示,我希望在调用consumedfalse字段值为reset(),但是情况并非如此,并且可以通过以下屏幕截图显示intellij IDEA:

enter image description here

知道这里出了什么问题吗?

更新

这在进入单元测试期间发生,并且单元测试失败,这意味着值 NOT 设置。但是,如果我直接运行单元测试,它将通过。

我尝试过很多其他的事情,例如使用intAtomicBoolean替换布尔值,所有类似的结果。

1 个答案:

答案 0 :(得分:1)

您的toString()应该是幂等的,而不是更改对象的状态。毕竟,它用于调试目的。 IDE使用对象的.toString()在调试器中显示它。您可以设置状态,然后在调试器向您显示时更改状态。