使用类方法,我想确保在getAverage
方法之前始终调用setAverage
方法
如果先调用setAverage
,则应该返回错误。
我很困惑如何检查在get之前是否调用了该集。
答案 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等)
(我在硕士论文期间写过这样一个框架。当然,它比检查单个顺序方法调用要复杂一点。)