2015-06-26 2 views
1

Я переводил Java (JDK 1.5) «enum» в Java ME (JDK 1.4).Java ME: преобразовать базовый объект JDK 1.5 «enum» в Java ME CLDC-1.1/IMP-NG (JDK 1.4)

Многие люди предложили retroweaver для разбора JDK 1.5 библиотек JDK 1.4, но у меня есть много проблем с этим, и я действительно хочу получить полный контроль над моим проектом из-за ограничений HW.

Каков наилучший способ перевести его или найти эквивалент?

/** 
Authentication enumerates the authentication levels. 
*/ 
public enum Authentication 
{ 
    /** 
    No authentication is used. 
    */ 
    NONE, 
    /** 
    Low authentication is used. 
    */ 
    LOW, 
    /** 
    High authentication is used. 
    */ 
    HIGH, 
    /* 
    * High authentication is used. Password is hashed with MD5. 
    */ 
    HIGH_MD5, 
    /* 
    * High authentication is used. Password is hashed with SHA1. 
    */ 
    HIGH_SHA1, 
    /* 
    * High authentication is used. Password is hashed with GMAC. 
    */ 
    HIGH_GMAC; 

    /* 
    * Get integer value for enum. 
    */ 
    public int getValue() 
    { 
     return this.ordinal(); 
    } 

    /* 
    * Convert integer for enum value. 
    */ 
    public static Authentication forValue(int value) 
    { 
     return values()[value]; 
    } 
} 
+1

Это действительно зависит от того, насколько вы полагаетесь на уникальные возможности перечисления в коде. Если нет ничего, что пытается сериализовать или делать что-нибудь интересное, вы можете эмулировать перечисление с классом и реализовать определенные функции, которые вы используете. Вы даже можете решить заменить enum на простые константы, если вам не нужна безопасность типа. – RealSkeptic

+0

Я могу заменить все обычные константы. Я попытаюсь посмотреть, работает ли это. Tnx –

ответ

2

В этой статье 1997 года показано, как create enumerated constands в Java.

Идея состоит в том, чтобы иметь окончательный класс с частным конструктором и общедоступными константами. Используемый пример:

public final class Color { 

    private String id; 
    public final int ord; 
    private static int upperBound = 0; 

    private Color(String anID) { 
    this.id = anID; 
    this.ord = upperBound++; 
    } 

    public String toString() {return this.id; } 
    public static int size() { return upperBound; } 

    public static final Color RED = new Color("Red"); 
    public static final Color GREEN = new Color("Green"); 
    public static final Color BLUE = new Color("Blue"); 
}