我想通过给定的枚举调用动态吸气剂。我想在静态地图中定义它。但我不确定我的对象将如何使用该方法。
我有颜色枚举和对象库。
public enum Color {
Red,
Blue,
Black,
Green,
Pink,
Purple,
White;
}
public class Library{
public List<String> getRed();
public List<String> getBlue();
public List<String> getBlack();
.....
}
我想要一个 Map ,所以当我有一个按类型的新库对象时,我会调用正确的 get。例如 :
private static Map<Color, Function<......>, Consumer<....>> colorConsumerMap = new HashMap<>();
static {
colorConsumerMap.put(Color.Red, Library::getRed);
colorConsumerMap.put(Color.Blue, Library::getBlue);
}
Library lib = new Library();
List<String> redList = colorConsumerMap.get(Color.Red).apply(lib)
但是这样它不会编译。请问有什么建议吗?