728x90
- Supplier<T> => T get() => 매개변수는 없고 반환값만 있음. (공급자)
import java.util.function.Supplier;
public class SupplierExample {
public static void main(String[] args) {
printValid(0, getVeryExpensiveValue());
printValid(-1, getVeryExpensiveValue());
printValid(-2, getVeryExpensiveValue());
System.out.println("================");
printIfValidIndex(0, () -> getVeryExpensiveValue());
printIfValidIndex(-1, () -> getVeryExpensiveValue());
printIfValidIndex(-2, () -> getVeryExpensiveValue());
}
private static String getVeryExpensiveValue() {
try {
Thread.sleep(3_000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Jeong";
}
private static void printIfValidIndex(int number, Supplier<String> valueSupplier) {
if (number >= 0) {
System.out.println(valueSupplier.get());
} else {
System.out.println("Invalid");
}
}
private static void printValid(int number, String value) {
if (number >= 0) {
System.out.println("The value is " + value + ".");
} else {
System.out.println("Invalid");
}
}
}
728x90
'Language > 자바' 카테고리의 다른 글
자바 가비지 콜렉터(GC)에 대한 정리. (0) | 2023.02.12 |
---|---|
자바 if else 와 swtich case 를 비교해보았다.. (0) | 2023.02.11 |
자바 접근지시자 (0) | 2023.01.29 |
자바 오토박싱 & 언박싱 (0) | 2023.01.29 |
자바 @FunctionalInterface 는 무엇인가? (0) | 2023.01.29 |
댓글