사용자 도구

사이트 도구


java:enum

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
java:enum [2016/03/21 23:30]
kwon37xi [static loading with EnumMap]
java:enum [2022/11/02 09:59] (현재)
kwon37xi [Java enum]
줄 1: 줄 1:
 ====== Java enum ====== ====== Java enum ======
 +===== name() 기반 조회가 많을 경우 =====
 +  * ''name()''이나 기타 enum의 특정 필드값을 기준으로 다시 enum 자체를 조회할 일이 많다면 static 으로 미리 Map 을 만들어두고 Map 에서 조회하는게 낫다.
  
 +<code java>
 +public enum MyEnum {
 +    BAR,
 +    BAZ;
 +    // 외부에서는 MAP에 접근이 불가능해야한다.
 +    private static final Map<String, MyEnum> MAP = Stream.of(MyEnum.values()).collect(Collectors.toMap(Enum::name, Function.identity()));
 +
 +    public static MyEnum fromName(String name){
 +        return MAP.get(name);
 +    }
 +}
 +</code>
 +https://stackoverflow.com/a/43664038/1051402
 ===== 자기 참조 enum - Self referential enum ===== ===== 자기 참조 enum - Self referential enum =====
 enum이 enum 생성자에서 동일 enum의 다른 값을 참조해야하는 경우가 발생할 수 있는데, 아직 초기화가 안된 다른 값을 참조하는 것은 문법적으로 불가하다. enum이 enum 생성자에서 동일 enum의 다른 값을 참조해야하는 경우가 발생할 수 있는데, 아직 초기화가 안된 다른 값을 참조하는 것은 문법적으로 불가하다.
java/enum.1458572404.txt.gz · 마지막으로 수정됨: 2016/03/21 23:30 저자 kwon37xi