Java - 在另一个之前调用一个方法

时间:2013-04-14 09:39:35

标签: java

使用类方法,我想确保在getAverage方法之前始终调用setAverage方法

如果先调用setAverage,则应该返回错误。

我很困惑如何检查在get之前是否调用了该集。

2 个答案:

答案 0 :(得分:1)

如果getAverable返回非基本对象,则可以检查该值是否为空。

如果返回原始值,如整数,则可以使用布尔值来检查是否调用了setMethod。

class Name {
    int value;
    boolean isCalled;
    public int getValue() {
        if(isCalled == false) {
            throw new Exception();
        }
        else {
           return value;
        }
    }


    public void setValue(int value) {
        isCalled = true;
        this.value = value;
    }
}

答案 1 :(得分:1)

这样做没有直接的Java支持。当然,你可以直接在方法中实现一些记忆哪个方法按顺序执行的算法。更好的方法是使用面向方面的编程。

执行所需操作的最简单方法是编写一个Aspect,它在布尔中写入getter,并且只有在Boolean flag为true的情况下才允许执行setter。

当然,这只是第一步,而且非常容易出错。 (并发,Repetiton等)

(我在硕士论文期间写过这样一个框架。当然,它比检查单个顺序方法调用要复杂一点。)