我们可以将对象传递给枚举抽象方法并在枚举中进行计算吗?这是一个场景,我有四个常量,每个常量都有自己的值.基于常量,我将在我的方法中进行计算.相反,我想在枚举中进行计算,并希望得到响应.要在枚举中进行计算,我必须将两个/三个引用对象传递给枚举方法...
例如:将学校视为枚举,常数是教师(低级别),学生(无人),OFFICEADMIN(OFFICEACCESS).
在枚举中,我有抽象方法进程,它接收USER POJO,字符串作为参数并更新对象中的一些字段并将相同的USER POJO(带有更新)返回给调用者.通过这个,我可以在枚举本身中同步常量和它们的逻辑.
所以我的问题,
在枚举中实现这个实现是否可以?(我已经看到大多数示例都将枚举视为存储常量值,而不是将它们用于任何计算)
这个计算可以通过使用类中的方法来完成,如果我在枚举方法中进行计算有什么好处?
是否可以在枚举中创建getter/setter方法?
提前致谢!!
恕我直言:
- 在枚举中实现这个实现是否可以?
是的 - 我一直这样做.
enum Ops implements Op {
Nop{
@Override
public int filter(int old, int now) {
// Unchanged.
return now;
}
},
Diff{
@Override
public int filter(int old, int now) {
return a(now)
| (Colour.MidGrey + (r(now) - r(old))) << 16
| (Colour.MidGrey + (g(now) - g(old))) << 8
| (Colour.MidGrey + (b(now) - b(old)));
}
};
}
Run Code Online (Sandbox Code Playgroud)
- 这个计算可以通过使用类中的方法来完成,如果我在枚举方法中进行计算有什么好处?
功能的代码在一个地方.这总是一件好事.
- 是否可以在枚举中创建getter/setter方法?
是的 - 但不是.请记住,代码的生命周期中每个都有一个实例enum.在全局对象上添加/删除功能很可能会在以后伤害到您.