enum Temp {
VALUE1(Tempclass::getField1)
VLAUE2(Tempclass::getField2)
private final Function<Tempclass, String> type;
}
class Tempclass {
String field1;
String field2;
}
Using the above code I can get the value of Tempclass
fields based on enum
values.
Now how to set the fields of Tempclass
based on enum
value ex: if enum
VALUE2
is selected, then i need to set the Tempclass
field2
to the input value.
CodePudding user response:
Use a BiConsumer<Tempclass, String>
taking an instance of TempClass
and a String
and set the appropriate field in the class.
VALUE1(Tempclass::getField1, Tempclass::setField1),
VALUE2(Tempclass::getField2, Tempclass::setField2);
private final BiConsumer<Tempclass, String> setter;
Get the setter from the enum and pass the values to the accept
method of the BiConsumer.
enumInstance.getSetter().accept(tempClassInstance, "some-value");