java是否有一些约定来指示对象处于空状态?

Tom*_*ica 3 java oop

当然,定义可以有所不同.我已经习惯了PHP的空,它会将空的所有内容调用为false.我想在我的Java应用程序中将这些东西称为空:

  • null
  • 字符串为零 length
  • 0 Integer,FloatDouble
  • false
  • 任何零长度的数组
  • ArrayListHashMap

例如,Java就是toString惯例.每个对象都被授予给你一些字符串表示.在我的Settings班上,我经营HashMap<String, Object>.我的empty方法现在看起来像这样:

  public boolean empty(String name) {
    Object val = settings.get(name);
    if(val!=null) {
      return false;
    }
    return true;
  }
Run Code Online (Sandbox Code Playgroud)

我想以传统的方式扩展它,而不是if(val instanceof XXX)链.

Hoo*_*pje 5

不,Java中没有标准惯例.此外,在Java中没有"评估为假"(当然除了布尔和布尔除外).

您将不得不编写一个方法(或者更确切地说,为您需要的每种类型的一系列重载方法),它实现了您的"空"概念.例如:

public static boolean isEmpty(String s) {
    return (s == null) || (s.isEmpty());
}

public static boolean isEmpty(int i) {
    return i == 0;
}

...
Run Code Online (Sandbox Code Playgroud)