使用类方法,我想确保getAverage
方法总是在方法之前setAverage
调用
如果setAverage
首先调用,它应该返回一个错误。
我很困惑如何检查集合是否在获取之前被调用。
使用类方法,我想确保getAverage
方法总是在方法之前setAverage
调用
如果setAverage
首先调用,它应该返回一个错误。
我很困惑如何检查集合是否在获取之前被调用。
如果 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;
}
}
没有直接的 Java 支持这样做。当然,您可以直接在方法中实现一些算法,该算法会记住哪个方法以哪个顺序执行。更好的方法是使用面向方面的编程。
做你想做的最简单的方法是编写一个 Aspect,它在一个布尔值中写入 getter 已执行,并且仅在布尔标志为 true 的情况下才允许执行 setter。
当然,这只是第一步,很容易出错。(并发、重复等)
(我在硕士论文期间写过这样一个框架。当然,它比仅检查单个顺序方法调用要复杂一些。)