情况是刚入职,看见同事直接在 pojo 类中使用枚举类型作为成员变量,代码在最后。但是阿里 Java 开发手册不建议这么写。
[强制] 二方库里可以定义枚举类型,参数可以使用枚举类型,但是接口返回值不允许使用枚举类型或者包含枚举类型的 POJO 对象。 -- 来自阿里巴巴 Java 开发手册 1.4.0 P36 第 5 条
现在问题有 2 个:
- pojo 中能不能直接使用枚举类型作为成员变量呢?
- 阿里这么规定的原因?
望能解惑。
EnumA {
A,
B;
}
class Pojo {
private String s;
EnumA e;
// getter setter
}
class Test {
EnumA ee;
public static void main(String[] args) {
Test t = new Test();
Pojo p = new Pojo();
if (t.ee == p.getE()) {
// do sth
}
// ...
}
}