Java将枚举作为参数从类传递到另一个类

时间:2014-10-06 11:02:04

标签: java enums parameter-passing

如何处理从类传递给另一个类的枚举。传递的枚举进入Test2类中的另一个枚举。

以下是我的问题的解释。我知道枚举是最终的,不能覆盖。所以弄清楚了 this.Jun2 = E;代码只是解释。

class Test1{
 enum Junk{A,B,C}; 
 Test2.loader(Junk);

}

class Test2{
 enum Junk2{};
 public static void loader(enum E) 
  this.Junk2 = E;
}
...other jobs based on Junk2;

作为抽象类的Test2类的目的,它处理从Test

等扩展类中设计的枚举

1 个答案:

答案 0 :(得分:2)

您在loader的签名中指定枚举类型(您需要授予对两个类的枚举的访问权限):

 public static void loader(Junk junk)

您已在Test2中展示了第二个单独的枚举。 Test2使用Junk可能更有意义,而不是单独的枚举。如果您使用单独的值,则必须在值之间建立映射(您通常将其作为枚举上的方法实现,例如Junk2.fromJunk(...)),这是一个维护问题。


旁注:在上文中,我将参数名称从E更改为junk。在Java中,压倒性的约定是参数名称以小写字母开头。另外,参数的名称应该以某种方式反映它的含义。 E可能会建议“枚举”,但哪一个?一般情况下,不要过分,使名称具体到足以在某种程度上有意义。