νμ¬ μ½λλ₯Ό λΆμνλ€κ° ν¨μνμΈν°νμ΄μ€λ₯Ό νμ©ν λΆλΆμ΄ μμ΄μ 곡λΆν΄λ³΄μλ€.
μ¬μ©ν λͺ©μ μ ν΄λΉ EnumType μ μ¬μ©νλ©΄ κ·Έ Enumμ λ§κ² λ°°μ΄μ μ λ ¬νμ΅λλ€.
μ μ ν 좩격μ λ°μμ΅λλ€ ..γ .. κ·Έλμ μ λ κ°λ¨νκ² κ΅¬νν΄λ³΄κ³ 곡λΆν΄λ΄€μ΅λλ€!
package com.example.demo;
import java.util.function.Function;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
public enum ItemType {
AA("μμ",CalRatio::getRatio),
BB("μλ£",CalRatio::getRatio),
CC("κ³Όμ",CalRatio::getRatio);
final String type;
final Function<Long,Integer> ratio;
}
@RequiredArgsConstructor μ μ¬μ©ν΄ final μ΄ μ μΈλ νλλ€μ΄ μ»΄νμΌ μ μλμ κ°μ΄ μμ±μλ‘ μμ±λ©λλ€
Long νλΌλ―Έν° , Integer λ¦¬ν΄ νλ€.
ItemType(String type, Function<Long, Integer> ratio) {
this.type = type;
this.ratio = ratio;
}
μμμ λν μμ΄ν μ κ°μ€μΉλ₯Ό κ΅¬ν΄ μ½λμ ν¬ν¨ μμΌμΌ νλ€λ©΄
(λμΆ© λ§λ μμ )
package com.example.demo;
public class CalRatio {
public static Integer getRatio(Long weight){
double totalWeight = 300;
return (int)Math.round(weight / totalWeight *100);
}
}
μ΄λ°μμΌλ‘ μ¬μ©λ μ μμ΅λλ€!
ItemType.AA.getRatio().apply(120L)
λ§μ½μ 맀κ°λ³μκ° λ κ°μΈ κ²½μ°μλ BiFunction μ μ¬μ©νλ©΄ λ©λλ€!
Integer,Integer νλΌλ―Έν°λ₯Ό λ°κ³ Integerλ‘ Return ν©λλ€!
final BiFunction<Integer,Integer,Integer> totalAccount;
public static Integer getTotalAccount(int quantity, int unit) {
return Math.round(quantity * unit);
}
ItemType.AA.totalAccount.apply(250,5)
κ°λ¨νκ² μ¬μ©ν΄λ³Έ κ²½νμ 곡μ ν΄λ΄ λλ€. λμ€μ μ΄λ€μμΌλ‘ μ νλ‘μ νΈμ κ³ λν ν μ§ μ€λ μ΄λ€μ..........
'π WEB > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ©΄μ μνλ μλ¬λ©μμ§ λ³΄λ΄κΈ° (1) | 2023.03.09 |
---|---|
λλ§ μ΄λ €μ΄ μμΈμ²λ¦¬ (0) | 2022.05.19 |
Test-Driven-Development ν μ€νΈ μ£Όλ κ°λ° (0) | 2022.03.24 |
Java 8 Interface - default λ©μλ, static λ©μλ (0) | 2022.03.23 |
[MapStruct] λ΄κ° μ°Ύμ μ°λ €κ³ μ 리ν κΈ (0) | 2022.03.16 |