Java 在接口中引用布尔值
我遇到了一点问题,希望有人能告诉我这里缺少了什么。 对于某些上下文,我有以下方法:Java 在接口中引用布尔值,java,Java,我遇到了一点问题,希望有人能告诉我这里缺少了什么。 对于某些上下文,我有以下方法: private boolean windowork; public class WinidowMalfunction extends Event { ControllerException newException = new ControllerException("Error:"); public WinidowMalfunction(long delayTime)
private boolean windowork;
public class WinidowMalfunction extends Event {
ControllerException newException = new ControllerException("Error:");
public WinidowMalfunction(long delayTime) {
super(delayTime);
}
public void action() throws ControllerException {
windowork = false;
someThingWentWrongHere(1, "Error at WinidowMalfunction");
}
}
private boolean poweron;
public class PowerOut extends Event {
public PowerOut(long delayTime) {
super(delayTime);
}
public void action() throws ControllerException {
poweron = false;
someThingWentWrongHere(2, "Error at powerOut event");
}
}
我正在创建interface Fixable
,在这里我需要更改poweron
和windowork
的值,将它们的值更改为true
。但我无法得到可修复的接受参考。它们都在同一个类中,那么有没有方法在接口中引用这些布尔函数
编辑: 作业问题: 在这一部分中,我们添加了恢复保存的GreenhouseControls对象的功能,并让它在停止的地方继续执行。它演示了接口的使用以及Java方法返回对象的能力
}接口可以设计为读写驻留在类/实例中的布尔属性
public interface Somename {
public boolean isPowerOn();
public void setPowerTo(boolean arg);
}
您可以这样做:
interface Fixable {
public boolean setTrue();
}
class Foo implements Fixable {
private boolean windowork = false;
public void setTrue() {
windowork = true;
}
}
class Bar implements Fixable {
private boolean poweron = false;
public void setTrue() {
poweron = true;
}
}
上述方法的唯一优点是,如果您有一个可修复的对象数组,那么您可以遍历它们并执行此操作
for (Fixable f : fixableArray) {
f.setTrue();
}
你得到的编译错误是什么?@Thilo我没有得到编译错误,我只是从IDE得到一个错误,说poweron没有声明。我不确定我是否理解。你想得到什么推荐信?您无法获取原语的引用,即使它们是包装类,它们也是不可变的。“我正在创建接口可修复”在哪里?您显示的代码中没有。@Andreas我正在创建接口方法,在我显示的代码下面,它是一个300行代码,所以我不想发布所有内容,只是发布相关的部分。我尝试了您建议的内容,但我得到的结果是,接口抽象方法不能有主体
确实,接口没有主体。请参阅WJS的回答您提到的想法可能会奏效,但这部分任务要求我们以特定的格式完成(我在文章末尾添加了这一点),您可以更改接口方法的名称和任务。这基本上是一个演示的框架。正如您所知,接口方法隐式地是abstract
和public
哦,好的,当我在Fixable
的第二部分添加日志文件时,它不会干扰setTrue
对吗?不,它们是单独的方法。但它们都必须得到实施。这并不意味着它们必须被调用相同的次数,以任何顺序,等等。你需要的时候可以调用它们。就像@kiwicptn的例子一样。