【问题标题】:How to modify enum by void method? <Java>如何通过 void 方法修改枚举? <Java>
【发布时间】:2017-10-28 10:05:04
【问题描述】:

我的枚举是一周中的几天。我想写方法prevDay(),它会修改每个

Day day

键入使其相等

Day.MON

调用以下代码时出现错误:

错误 - 赋值左侧必须是变量。

public enum Day {

    MON, TUE, WED, THU, FRI, SAT, SUN;

    public static main(String[] args){
         Day d= Day.TUE;
         d.prevDay();
    }
    public void prevDay(){
        this=Day.MON;
    }

}

但如果我打电话:

public enum Day{
MON, TUE, WED, THU, FRI, SAT, SUN;


     public static main(String[] args){
          Day d= Day.TUE;
          d=d.prevDay();// if I change this line to: "d.prevDay() "
     }                  // will day also be modified?

     public Day prevDay(){
          return Day.MON;
     }
}

没有错误。为什么?

【问题讨论】:

  • 这是什么语言?错误告诉你什么?你是怎么调用这个方法的?
  • 给我-4000 反对票或告诉我我必须在我的问题中修改什么以使其更好,因为我不知道。
  • (1) 最初您没有指定错误,但您至少在一定程度上纠正了该错误。 (2) 您仍然没有指定这是什么语言。 (3) return=Day.MON; 运行没有错误似乎非常不可能,我以前从未见过这种语法。 (4) 你想要完成什么,为什么?注意说明你在说什么以及你在问什么。如果您的问题对您来说不够重要,不值得关注,那么它不太可能值得我们关注。

标签: java methods enums void


【解决方案1】:

我为您做了一些研究,发现以下内容:

http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_09_004.htm#mjb51623ea831884c57b143981630b06fb

见清单 9.26

您可以尝试使用 this.Day 来代替简单的 this 吗?

【讨论】:

    猜你喜欢
    • 2011-06-29
    • 2011-10-05
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2014-03-31
    • 1970-01-01
    相关资源
    最近更新 更多