相关疑难解决方法(0)

如何比较Java中的字符串?

==到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals(),并修复了该错误.

==坏?什么时候应该不应该使用它?有什么不同?

java string equality

726
推荐指数
23
解决办法
376万
查看次数

Java枚举反向查找最佳实践

在博客上看到它建议以下是使用getCode(int)Java枚举进行"反向查找"的合理方法:

public enum Status {
    WAITING(0),
    READY(1),
    SKIPPED(-1),
    COMPLETED(5);

    private static final Map<Integer,Status> lookup 
            = new HashMap<Integer,Status>();

    static {
        for(Status s : EnumSet.allOf(Status.class))
            lookup.put(s.getCode(), s);
    }

    private int code;

    private Status(int code) {
        this.code = code;
    }

    public int getCode() { return code; }

    public static Status get(int code) { 
        return lookup.get(code); 
    }
}
Run Code Online (Sandbox Code Playgroud)

对我来说,静态地图和静态初始化程序看起来都是个坏主意,我的第一个想法就是将查询编码为:

public enum Status {
    WAITING(0),
    READY(1),
    SKIPPED(-1),
    COMPLETED(5);

    private int code;

    private Status(int code) {
        this.code = code;
    } …
Run Code Online (Sandbox Code Playgroud)

java enums static-initializer

72
推荐指数
4
解决办法
4万
查看次数

为什么在这种情况下 enum 比 HashMap 更有用?

这似乎是一个常见问题,但建议框中的任何项目都没有准确解释我想知道的内容。在此链接中,每个人都建议使用枚举类型(我现在已经研究过,但之前从未使用过)。我打算建议简单地使用 HashMap 并阅读答案,看看 Enum (http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)实际上是否是更好的答案。根据 oracle 上的链接,“只要需要表示一组固定的常量,就应该使用枚举类型。” 所以,确实如此。

我的问题是...为什么?是不是更像是签订了一份不会改变的契约?这是获得某些类功能的更短的方法吗?表现如何?为什么这与仅仅在同一个类中定义常量有什么不同?

谢谢你!

java enums class hashmap

4
推荐指数
1
解决办法
2108
查看次数

标签 统计

java ×3

enums ×2

class ×1

equality ×1

hashmap ×1

static-initializer ×1

string ×1