2014-01-06 2 views
0

Привет Я практикую Перечисление Java в эти дни и была поставлена ​​задача отладки некоторые коды на них из всех я нашел один очень сложной задачей здесь являетсяJava перечисление становится немного запутанным

public final class ParkingAttributes extends Enum 
    { 

    public static final ParkingAttributes BIKE; 
    public static final ParkingAttributes CAR; 
    public static final ParkingAttributes CYCLE; 
    private static final ParkingAttributes ENUM$VALUES[]; 

    private ParkingAttributes(String s, int i) 
    { 
     super(s, i); 
    } 

    public static ParkingAttributes valueOf(String s) 
    { 
     return (ParkingAttributes)Enum.valueOf(com/tilzmatictech/mobile/navigation/delhimetronavigator/metro/ParkingAttributes, s); 
    } 

    public static ParkingAttributes[] values() 
    { 
     ParkingAttributes aparkingattributes[] = ENUM$VALUES; 
     int i = aparkingattributes.length; 
     ParkingAttributes aparkingattributes1[] = new ParkingAttributes[i]; 
     System.arraycopy(aparkingattributes, 0, aparkingattributes1, 0, i); 
     return aparkingattributes1; 
    } 

    static 
    { 
     CAR = new ParkingAttributes("CAR", 0); 
     BIKE = new ParkingAttributes("BIKE", 1); 
     CYCLE = new ParkingAttributes("CYCLE", 2); 
     ParkingAttributes aparkingattributes[] = new ParkingAttributes[3]; 
     aparkingattributes[0] = CAR; 
     aparkingattributes[1] = BIKE; 
     aparkingattributes[2] = CYCLE; 
     ENUM$VALUES = aparkingattributes; 
    } 
    } 

One вещь, которую я знаю, что перечисление является окончательным классом и не может быть расширено, что я не нашел где-либо здесь, это то, что перечисление будет определено и работа ENUM $ VALUES [] Может ли кто-нибудь объяснить мне работу этого кода и некоторые хорошие руководства по освоению enum Благодарю.

+1

Это не перечисление, это стандартный класс с некоторыми перечислений типа полей. Идентификаторы могут содержать любые символы UTF-8. Он не компилируется, так как мы должны объяснить, как это работает? – noone

+0

то как они дали это как расширение перечисления? – user1798477

+0

Компилятор говорит: «Ошибка: тип ParkingAttributes не может явно подклассировать Enum». Поэтому они так и не сделали этого. – noone

ответ

3

Вы делаете это неправильно.

Если вы хотите объявить перечисление, сделать это следующим образом:

public enum ParkingAttributes { //Implicitly a final class that extends Enum 
    BIKE, CAR, CYCLE//Implicitly static (but not final!) instances of ParkingAttributes. 
} 
Смежные вопросы