JAVA/JAVA

enum 메소드 처리

lovineff 2020. 6. 4. 17:39
enum CalculatorTypeJava7{
    CALC_A{
        long calculate(long value){return value;}
    },
    CALC_B{
        long calculate(long value){return value * 10;}
    },
    CALC_C{
        long calculate(long value){return value - 10;}
    };

    abstract long calculate(long value);
}

enum CalculatorTypeJava8{
    CALC_A(value -> value),
    CALC_B(value -> value * 10),
    CALC_C(value -> value -10);

    private Function<Long, Long> expression;

    CalculatorTypeJava8(Function<Long, Long> expression){ this.expression = expression;}

    public long calculate(long value){return expression.apply(value);}
}

public class JavaTest {
    public static void main(String[] args) {
        // JAVA 7
        System.out.println(CalculatorTypeJava7.CALC_A.calculate(1000));
        System.out.println(CalculatorTypeJava7.CALC_B.calculate(1000));
        System.out.println(CalculatorTypeJava7.CALC_C.calculate(1000));

        // JAVA 8
        System.out.println(CalculatorTypeJava8.CALC_A.calculate(1000));
        System.out.println(CalculatorTypeJava8.CALC_B.calculate(1000));
        System.out.println(CalculatorTypeJava8.CALC_C.calculate(1000));
    }
}

 

참고.

http://woowabros.github.io/tools/2017/07/10/java-enum-uses.html

'JAVA > JAVA' 카테고리의 다른 글

JAVA 금액 한글로 변환  (0) 2020.06.04
java String.format() VS DecimalFormat 속도 비교  (0) 2020.06.04
Java Application 중복 실행 방지(배치 프로그램)  (0) 2020.06.04
NIO 파일, 폴더 생성  (0) 2020.06.04
폴더내 파일 검색  (0) 2020.06.04