我创建了一个枚举。现在我想为每个枚举保存一个方法。这些方法属于不同的类。我怎样才能做到这一点? 我的意思是这样的:
public enum FooEnum {
A(Person::setAge),
B(Test::setTest);
private final Function</* What to enter here */, Object> function;
private FooEnum(final Function</* ... */, Object> function) {
this.function = function;
}
public Function</* ... */, Object> getFunction() {
return function;
}
}
显然这不会编译。 “Person”和“Test”只是一些示例类。
最佳答案
您可以使用Runnable
代替Function
。由于枚举是静态常量,因此您还需要将方法定义为静态:
public static class Person {
public static void setAge() {
}
}
public enum FooEnum {
A(Person::setAge);
private final Runnable function;
private FooEnum(Runnable function) {
this.function = function;
}
public Runnable getFunction() {
return function;
}
}
关于java - 每个枚举的保存方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56219424/