枚举进行计算

Pra*_*san 1 java enums

我们可以将对象传递给枚举抽象方法并在枚举中进行计算吗?这是一个场景,我有四个常量,每个常量都有自己的值.基于常量,我将在我的方法中进行计算.相反,我想在枚举中进行计算,并希望得到响应.要在枚举中进行计算,我必须将两个/三个引用对象传递给枚举方法...

例如:将学校视为枚举,常数是教师(低级别),学生(无人),OFFICEADMIN(OFFICEACCESS).

在枚举中,我有抽象方法进程,它接收USER POJO,字符串作为参数并更新对象中的一些字段并将相同的USER POJO(带有更新)返回给调用者.通过这个,我可以在枚举本身中同步常量和它们的逻辑.

所以我的问题,

  1. 在枚举中实现这个实现是否可以?(我已经看到大多数示例都将枚举视为存储常量值,而不是将它们用于任何计算)

  2. 这个计算可以通过使用类中的方法来完成,如果我在枚举方法中进行计算有什么好处?

  3. 是否可以在枚举中创建getter/setter方法?

提前致谢!!

Old*_*eon 5

恕我直言:

  1. 在枚举中实现这个实现是否可以?

是的 - 我一直这样做.

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)
  1. 这个计算可以通过使用类中的方法来完成,如果我在枚举方法中进行计算有什么好处?

功能的代码在一个地方.这总是一件好事.

  1. 是否可以在枚举中创建getter/setter方法?

是的 - 但不是.请记住,代码的生命周期中每个都有一个实例enum.在全局对象上添加/删除功能很可能会在以后伤害到您.