On 11=D4 17=C8=D5, =CF =CE=E710=CA=B142=B7=D6, Piotr Kobzda <p...@gazet=
Chris Uppal wrote:
daniel_nordlund_1...@hotmail.com wrote:
Hello. I was wondering if there is a better way to write the below
code. I have several enums, where each enum is for an option type and
each option has a short 1-3 letter string used when I need to identify
the option from a string. The code for each option type is identical
and I'd prefer to not repeat it over and over again.
As far as I know there is no way to remove the repetition. So, if it b=
enum classes automatically.Yes. That's the option.
But a little improvement is also possible here with a single
implementation of the lookup logic, like in the following example:
public class Options {
public interface Option {
String getOptionString();
}
public static enum YesNoOption implements Option {
YES("yes"), NO("no");
private final String str;
private YesNoOption(String str) { this.str = str; }
public String getOptionString() { return str; }
public static YesNoOption getOption(String str) {
return forString(YesNoOption.class, str);
}
}
// ... other options ...
public static <T extends Enum<T> & Option> T forString(
Class<T> optionType, String str) {
for(T o : optionType.getEnumConstants())
if(o.getOptionString().equals(str))
return o;
return null;
Very strong template code......