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 |