κ²°λ‘ μ μΌλ‘λ ν¨μν μΈν°νμ΄μ€λΌλ λ¬Έλ§₯μμ λλ€ ννμμ μ¬μ©ν μ μλ€.
ν¨μν μΈν°νμ΄μ€
νλμ μΆμ λ©μλλ₯Ό μ§μ νλ μΈν°νμ΄μ€μ΄λ€.
public interface Predicate<T> {
boolean test(T t);
}
public interface Comparator<T> { //java.util.Comparator
int compare(T o1, T o2);
}
public interface Runnable { //java.lang.Runnable
void run();
}
μ°Έκ³ λ‘ μΈν°νμ΄μ€μ κ²½μ° λν΄νΈ λ©μλ(μΈν°νμ΄μ€μ λ©μλλ₯Ό ꡬννμ§ μμ ν΄λμ€λ₯Ό κ³ λ €ν΄μ κΈ°λ³Έ ꡬνμ μ 곡νλ λ°λλ₯Ό ν¬ν¨νλ λ©μλ)λ₯Ό ν¬ν¨ν μ μλλ°, λ§μ λν΄νΈ λ©μλκ° μλλΌλ μΆμ λ©μλκ° μ€μ§ νλλ©΄ ν¨μν μΈν°νμ΄μ€λ€.
public interface Adder { //ν¨μν μΈν°νμ΄μ€
int add(int a, int b);
}
public interface SmartAdder extends Adder { //λ μΆμ λ©μλλ₯Ό ν¬ν¨νλ―λ‘ ν¨μν μΈν°νμ΄μ€ X
int add(double a, double b);
}
public interface Nothing { //μΆμ λ©μλκ° μμΌλ―λ‘ ν¨μν μΈν°νμ΄μ€ X
}
ν¨μ λμ€ν¬λ¦½ν°
ν¨μν μΈν°νμ΄μ€μ μΆμ λ©μλ μκ·Έλμ²(λ©μλ ꡬ쑰λ₯Ό μ μν κ²)λ λλ€ ννμμ μκ·Έλμ²λ₯Ό κ°λ¦¬ν¨λ€. ν¨μ λμ€ν¬λ¦½ν°λ λλ€ ννμμ μκ·Έλμ²λ₯Ό μμ νλ λ©μλλ₯Ό μλ―Ένλ€.
μλ₯Ό λ€μ΄ Runnable μΈν°νμ΄μ€μ μ μΌν μΆμ λ©μλμΈ run()
μ μΈμμ λ°νκ°μ΄ μμΌλ―λ‘ ν΄λΉ μΈν°νμ΄μ€λ μΈμμ λ°νκ°μ΄ μλ μκ·Έλμ²λ‘ μκ°ν μ μλ€.
() -> void //νλΌλ―Έν° 리μ€νΈκ° μμΌλ©° voidλ₯Ό λ°ννλ ν¨μλ₯Ό μλ―Έ
(Apple, Apple) -> int //λ κ°μ Appleμ μΈμλ‘ λ°μ intλ₯Ό λ°ννλ ν¨μλ₯Ό μλ―Έ
λλ€ ννμμ νμ κ²μ¬ μ리μ λν΄μλ 3.5μ μμ μμΈνκ² μ€λͺ νλ―λ‘ νμ¬λ λλ€ ννμμ λ³μμ ν λΉνκ±°λ ν¨μν μΈν°νμ΄μ€λ₯Ό μΈμλ‘ λ°λ λ©μλλ‘ μ λ¬ν μ μμΌλ©°, ν¨μν μΈν°νμ΄μ€μ μΆμ λ©μλμ κ°μ μκ·Έλμ²λ₯Ό κ°λλ€λ μ¬μ€μ κΈ°μ΅ν΄ λμ.
λν 'μ ν¨μν μΈν°νμ΄μ€λ₯Ό μΈμλ‘ λ°λ λ©μλμλ§ λλ€ ννμμ μ¬μ©ν μ μμκΉ?'λΌλ μλ¬Έμ΄ μκΈΈ μ μλ€.
κ·Έ μ΄μ λ μλμ κ°λ€.
- μΈμ΄ μ€κ³μλ€μ μλ°μ ν¨μ νμ(λλ€ ννμμ νννλ λ° μ¬μ©ν μκ·Έλμ²μ κ°μ νΉλ³ν νκΈ°λ²)μ μΆκ°νλ λ°©λ²λ λμμΌλ‘ κ³ λ €νμΌλ, μΈμ΄λ₯Ό λ 볡μ‘νκ² λ§λ€μ§ μλ νμ¬ λ°©λ²μ μ ν
- λλΆλΆμ μλ° νλ‘κ·Έλλ¨Έκ° μ΄λ²€νΈ μ²λ¦¬ μΈν°νμ΄μ€μ κ°μ΄ νλμ μΆμ λ©μλλ₯Ό κ°λ μΈν°νμ΄μ€μ μ΄λ―Έ μ΅μνλ€λ μ λ κ³ λ €
'Language & Framework > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ€ν°λ][λͺ¨λ μλ° μΈ μ‘μ ] 1.3 μλ° ν¨μ (0) | 2023.03.05 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] List<Integer>λ₯Ό int Arrayλ‘ λ³ν (0) | 2023.01.26 |
[νλ‘κ·Έλλ¨Έμ€] int Arrayλ₯Ό List<Integer>λ‘ λ³ν (0) | 2023.01.22 |