当前位置: 首页 > 面试题库 >

是否应将常量集合放在类或接口中?

满元凯
2023-03-14
问题内容

如果我要集中声明一组静态常量,以便将它们放在类或接口(Java)中,以便可以在各个项目之间共享它们。

在过去,我看到它们大部分都放在一个类中,但是我开始认为,既然该类不会也不应被实例化,也许它们在接口中会更好,但随后该接口也不应由任何类实现,例如

public class ErrorCodes {
    public static final String ERROR_1 = "-1";
    public static final String ERROR_2 = "-2";
}

要么

public interface ErrorCodes {
    public static final String ERROR_1 = "-1";
    public static final String ERROR_2 = "-2";
}

问题答案:

如果它们之间的联系紧密,那么我将它们放在一个枚举中:

public enum Error {
  ERROR_1("-1", "foo went wrong"),
  ERROR_2("-2", "bar went wrong");

  private final String id;
  private final String message;

  Error(String id, String message) {
    this.id=id;
    this.message=message;
  }

  public String getId() {
    return id;
  }

  public String getMessage() {
    return message;
  }
}

优点是您可以在代码中具有类型安全性,并且可以轻松添加基于id的查找(通过HashMap<String,Error>在构造函数中构建a
或通过简单地循环values())。



 类似资料:
  • 问题内容: 有没有一种方法可以检查nodestore的firestore中是否存在子集合? 目前,我正在使用文档,但是我需要检查文档中是否存在子类以便写入一些数据。 问题答案: 就在这里。您可以使用docs.length来知道子集合是否存在。 我制作了一个样本来指导您,希望对您有所帮助。

  • 问题内容: 给定一个类的集合,找到最近的公共超类的最佳方法是什么? 例如,鉴于以下情况: 我期望以下内容(并非详尽无遗): 我想我最终可以解决这个问题,但是肯定有人已经解决了诸如类型推断中的问题。谁能指出我的算法,或者更好的是一些现有的实用程序代码? ETA: 我了解反射API。我正在寻找的算法(或这种算法的实现)。 ETA: 我知道这是DAG。谢谢。你很聪明 ETA: 关于拓扑排序(有关EJP的

  • 是否有可能创建一个typeGuard,或者其他实现相同目的的东西,来检查一个变量是否是打字稿联合中的特定接口类型?

  • 问题内容: 在我的Hibernate类中,应该初始化实例集合 或不引起注意 对Hibernate有什么不同吗?我遇到了这个Hibernate文档,它在其中初始化了他们的HashSet,但是我经常看到他们没有被初始化。 问题答案: 从Hibernate的文档中: 由于存在基础关系模型,因此,具有集合值的属性不支持空值语义。Hibernate不会区分空集合引用和空集合。 还有… 当您使实例具有持久性时

  • 快速提问,我正在学习接口和继承。 这不是实际的代码,只是一个例子。假设我有抽象类“动物”。对马和犬类等组有一些继承。还有一个接口“宠物”。它将用于动物的不同子类。犬类“狗”的子类实现了接口“宠物”。因此“狗”的所有子类也实现了接口“宠物”,而不必在“狗”的每个子类上单独实现“宠物”,对吗?

  • 问题内容: 我有一个对象。我想确定对象表示的类型是否实现特定的接口。我想知道如何实现? 我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将添加实现接口的Class对象添加到我的地图。问题是将一个对象作为参数。我无法实例化接口。所以我对此感到茫然。有任何想法吗? 问题答案: 您应该使用: