【问题标题】:Java enums in MIDP 2 mobile applicationMIDP 2 移动应用程序中的 Java 枚举
【发布时间】:2010-10-28 07:35:38
【问题描述】:

在使用 .NET 2 和 Java 5 和 6 4 年后,我刚刚回到 MIDP 开发领域。在那段时间里,我非常喜欢使用枚举。

枚举是一种语言功能,它允许开发人员对其代码的某些部分更有信心,特别是能够更早地避免或检测错误(在编译期间)。可以在此处找到其他一些优势:http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html

奇怪的是,我在 MIDP 2.0 中找不到它们。我收到此错误消息:

"类型 'enum' 不应用作 标识符,因为它是保留的 来自源级别 1.5 的关键字"

前段时间我有一些使用 Java 1.4 的经验,但我不记得了。你的高级语言的较新版本的某些特性肯定是你认为理所当然的......

不管怎样,这里有一个很好的建议,告诉你不用它们怎么办(如果你正在开发 MIDP 或处理 Java 5 之前的代码):http://www.javacamp.org/designPattern/enum。 html

总结一下(更多细节和很好的解释,请点击上一个链接。非常感谢原作者):

//The typesafe enum pattern
public class Suit {
    private final String name;

    public static final Suit CLUBS =new Suit("clubs");
    public static final Suit DIAMONDS =new Suit("diamonds");
    public static final Suit HEARTS =new Suit("hearts");
    public static final Suit SPADES =new Suit("spades");    

    private Suit(String name){
        this.name =name;
    }
    public String toString(){
        return name;
    }

}

您对这个问题还有其他不同的方法吗?

【问题讨论】:

标签: java enums design-patterns midp type-safety


【解决方案1】:

MIDP 的问题在于它停留在 Java 语言级别 1.2(有人说是 1.3 或 1.4,但这不是重点),而枚举是在 1.5 中引入的。您的模式是朝着正确方向迈出的一步,但缺少“真实”枚举的某些功能,例如为每个常量分配一个序数。

您可能会在 1.5 中引入的泛型、注释等方面遇到类似问题。有一些工具可以将 Java 1.5 转换回 1.2,其中一些列在 here 上。像这样,您应该能够在 1.5 中编写代码并在 MIDP 上运行。但是请注意,使用这些工具会使您的构建过程相当复杂,而您提到的解决方案不会。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多