Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在接口中引用布尔值_Java - Fatal编程技术网

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方法返回对象的能力

  • 创建以下接口
  • 界面固定{

    //打开电源,修复窗口并清除错误代码

    无效修复()

    //记录到当前目录中名为fix.log的文本文件

    //打印到控制台,并确定打印的时间和性质

    //修复

    无效日志()


    }

    接口可以设计为读写驻留在类/实例中的布尔属性

    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的例子一样。