根据枚举值设置 class 个字段

set class fields based on enum value

enum Temp {
  VALUE1(Tempclass::getField1)
  VLAUE2(Tempclass::getField2)
  private final Function<Tempclass, String> type;
}

class Tempclass {
  String field1;
  String field2;
}

使用上面的代码,我可以根据 enum 值获取 Tempclass 字段的值。 现在如何根据 enum 值设置 Tempclass 的字段 例如:如果选择 enum VALUE2,那么我需要设置 Tempclass field2 到输入值。

使用 BiConsumer<Tempclass, String> 获取 TempClass 的实例和 String 并在 class.

中设置适当的字段
VALUE1(Tempclass::getField1, Tempclass::setField1),
VALUE2(Tempclass::getField2, Tempclass::setField2);

private final BiConsumer<Tempclass, String> setter;

从枚举中获取 setter 并将值传递给 BiConsumer 的 accept 方法。

enumInstance.getSetter().accept(tempClassInstance, "some-value");