Java枚举类型
in Java with 0 comment

Java枚举类型

in Java with 0 comment

引入

以下案例没有使用java中的枚举,分析以下程序在设计方面有什么缺陷?

// 计算两个int类型的商,计算成功返回1,计算失败返回0
public static int divide(int a, int b) {
  try {
    int c = a / b;
    return 1;
  } catch(Exception e) {
    return 0;
  }
}

以上程序设计缺陷在返回值类型上。返回一个int不恰当,既然最后的结果只是成功和失败,最好使用布尔类型。 因为布尔类型truefalse正好可以表示两种不同的状态。

以上的这个设计没问题,返回truefalse表示两种情况,但是在以后的开发中,有可能遇到一个方法的执行结果返回多种情况,但是每一个都是可以数清楚的,一枚一枚都是可以列举出来的。这个布尔类型就无法满足需求了。此时需要使用java语言中的枚举类型。其实boolean也可以看作一个枚举,truefalse是一个枚举的值。

枚举的使用

public static DivideEnum divide(int a, int b) {
  try {
    int c = a / b;
    return DivideEnum.SUCCESS;
  } catch(Exception e) {
    return DivideEnum.FAIL;
  }
}

枚举声明

enum DivideEnum {
  SUCCESS, FAIL
}

使用

System.out.println(divide(10, 0));

-- FAIL