Si bien la implementación de una interfaz en una enumeración, ¿por qué Eclipse automáticamente pone un punto y coma antes de que el método de interfaz siendo anulado?

acidic_base:

Tengo una interfacey unaenum

Me estoy poniendo en práctica el interfaceen elenum

Estoy usando eclipsecomo mi IDE

Lo que sigue es mi interfacearchivo -

ITrafficSignal.java ->

public interface ITrafficSignal {
    public void showAction();
}

Lo que sigue es mi enumarchivo -

ETrafficSignal.java ->

public enum ETrafficSignal implements ITrafficSignal {
    ;

    @Override
    public void showAction() {

    }
}

Aquí la ;línea 2 está siendo automáticamente de ser puesto poreclipse

Si quito ;, a continuación, en el methodbienestar implemented-

public void showAction()

es tener una línea roja debajo de la keyword voidy dice que el error -

Multiple markers at this line 
- implements ITrafficSignal.showAction
- Syntax error on token "void", volatile expected

Soy incapaz de entender esto.

repollo:

Eso es simplemente la sintaxis de los tipos de enumeración. De §8.9 Enum Tipos de la especificación del lenguaje Java :

EnumDeclaration:
  {ClassModifier} enum TypeIdentifier [Superinterfaces] EnumBody 

Y la sintaxis de EnumBodyes:

EnumBody:
  { [EnumConstantList] [,] [EnumBodyDeclarations] }

EnumConstantList:
  EnumConstant {, EnumConstant}

EnumConstant:
  {EnumConstantModifier} Identifier [( [ArgumentList] )] [ClassBody]

EnumConstantModifier:
  Annotation

Y, finalmente, la sintaxis de EnumBodyDeclarationses:

EnumBodyDeclarations:
  ; {ClassBodyDeclaration} 

Como se puede ver, Lo anterior muestra que las declaraciones del cuerpo enum deben estar precedidos por un punto y coma ( ;) que lo separa de las constantes de enumeración. A diferencia de la EnumConstantListdel punto y coma no es opcional 1 . Esto significa que el punto y coma deben estar presentes si hay declaraciones de enumeración del cuerpo, independientemente de que exista cualquier constante de enumeración declarados, aunque yo personalmente no veo el punto de tener un tipo de enumeración sin constantes.


1. La totalidad EnumBodyDeclarationses opcional, sin embargo, es decir, si no hay declaraciones cuerpo, entonces, el punto y coma puede ser omitida.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=300349&siteId=1
Recomendado
Clasificación