μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- μ°μ°μ
- μ€ν
- ν방쿼리
- λ°μ΄ν°νμ
- μλ°
- μ€νΈλ¦Ό
- λ°°μ΄
- μ
- StringBuffer
- λ°±μ€9093
- λ°±μ€11053 #νμ΄μ¬ #python
- StringBuilder
- λ°±μ€9012
- λ
- λ¬Έμμ΄
- μΏ ν‘ERD
- λ°±μ€1874
- java
- μ€νμμ΄
- stream
- μ°
- μΏ ν‘DB
- Today
- Total
Tech Log π οΈ
[java] λλ€μ λ³Έλ¬Έ
ν¨μν νλ‘κ·Έλλ°μ΄λ,
ν¨μλ₯Ό μ μνκ³ λ°μ΄ν° μ²λ¦¬λΆλ‘ λ³΄λ΄ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ κΈ°λ²
ν¨μν νλ‘κ·Έλλ°μ μν΄ μλ°8λΆν° λλ€μμ μ§μνλ€.
λλ€μ :(맀κ°λ³μ, ...) -> {μ²λ¦¬λ΄μ©}
μλ°λ λλ€μμ μ΅λͺ ꡬν κ°μ²΄λ‘ λ³ννλ€.
μΆμ λ©μλκ° νλμ΄κ³ λκ°μ 맀κ°λ³μλ₯Ό κ°μ§λ λλ€μμ λ€μκ³Ό κ°λ€.
(x,y) -> { μ²λ¦¬λ΄μ© };
x,y : 맀κ°λ³μ
-> { μ²λ¦¬λ΄μ© } : μΆμ λ©μλμ μ€ν λΈλ‘
λλ€μμ μΈν°νμ΄μ€μ μ΅λͺ ꡬν κ°μ²΄μ΄λ―λ‘ μΈν°νμ΄μ€ νμ μ 맀κ°λ³μμ λμ λ μ μλ€.
public class Main {
public static void main(String[] args) {
action((x, y) -> {
int result = x+y;
System.out.println("result: "+ result);
});
action((x,y) -> {
int result = x-y;
System.out.println("result ="+result);
});
}
public static void action(Calculable calculable) {
int x = 10;
int y = 4;
calculable.calculate(x, y);
}
}
calculable.calculate(x,y) κ° μ€νλλ©΄ λλ€μμ μ€κ΄νΈ λΈλ‘μ΄ μ€νλλ€.
μ΄λ€ λλ€μμ 맀κ°κ°μΌλ‘ μ 곡νλλμ λ°λΌ κ²°κ³Όλ λ¬λΌμ§λ€.
* μΈν°νμ΄μ€μ μ΅λͺ ꡬν κ°μ²΄λ₯Ό λλ€μμΌλ‘ νννλ €λ©΄ μΈν°νμ΄μ€κ° λ¨ νλμ μΆμλ©μλλ₯Ό κ°μ ΈμΌνλ€.
( @FuntionalInterface λ₯Ό λΆμ΄λ κ²μ λ³ΈμΈ λ§μμ΄μ§λ§ μ νν ν¨μν μΈν°νμ΄μ€λ₯Ό μμ±ν μ μλ€. )
맀κ°λ³μκ° μλ λλ€μ
//μ€νλ¬Έμ΄ λκ° μ΄μμΌ κ²½μ°
() ->{
μ€νλ¬Έ;
μ€νλ¬Έ;
}
//μ€νλ¬Έμ΄ νλμΌ κ²½μ°
() -> μ€νλ¬Έ
μ€νλ¬Έμ΄ λ κ° μ΄μμΌ κ²½μ°μλ μ€κ΄νΈλ₯Ό μλ΅ν μ μλ€.
public static void main(String[] args) {
Person person = new Person();
person.action(() -> {
System.out.println("WORK");
System.out.println("PROGRAMMING");
});
person.action(()->{
System.out.println("WORK");
});
}
맀κ°λ³μκ° μλ λλ€μ
ν¨μν μΈν°νμ΄μ€μ μΆμ λ©μλμ 맀κ°λ³μκ° μμ κ²½μ°
맀κ°λ³μνμ μ μλ΅νκ±°λ varλ₯Ό μ¬μ©ν μλ μμ§λ§ νμ μ μλ΅νλ κ²μ΄ μΌλ°μ μ΄λ€.
리ν΄κ°μ΄ μλ λλ€μ
ν¨μν μΈν°νμ΄μ€μ μΆμ λ©μλμ 리ν΄κ°μ΄ μμ κ²½μ°return λ¬Έ νλλ§ μμ κ²½μ°μλ μ€κ΄νΈμ ν¨κ» return ν€μλ μλ΅κ°λ₯리ν΄κ°μ μ°μ°μ or 리ν΄κ°μ΄ μλ λ©μλ νΈμΆλ‘ λ체 κ°λ₯
public static void main(String[] args) {
Person person = new Person();
person.action((x, y) -> {
double result = x+y;
return result;
});
person.action((x,y) -> (x+y));
}
λ©μλ μ°Έμ‘°
public class Computer {
public static double staticMethod(double x,double y){
return x+y;
}public double instanceMethod(double x,double y){
return x*y;
}
}
public static void main(String[] args) {
Person person = new Person();
person.action(Computer::staticMethod);
Computer com = new Computer();
person.action(com::instanceMethod);
}
맀κ°λ³μμ λ©μλ μ°Έμ‘°
λλ€μμμ μ 곡λλ a 맀κ°λ³μμ λ©μλλ₯Ό νΈμΆν΄μ b 맀κ°λ³μλ₯Ό 맀κ°κ°μΌλ‘ μ¬μ©νλ κ²½μ°κ° μλ€.
(a,b) -> {a.instanceMethod(b);}
μ΄κ²μ λ©μλ μ°Έμ‘°λ‘ νννλ©΄ λ€μκ³Ό κ°λ€.
ν΄λμ€::instanceMethod
aμ ν΄λμ€ :: λ©μλ μ΄λ¦
public class MethodReference {
public static void main(String[] args) {
Person person = new Person();
person.ordering(String :: compareToIgnoreCase);
}
}
μμ±μ μ°Έμ‘°
λλ€μμ΄ μλμ κ°μ΄ λ¨μν κ°μ²΄λ₯Ό μμ±νκ³ λ¦¬ν΄νλλ‘ κ΅¬μ±λλ€λ©΄ μμ±μ μ°Έμ‘°λ‘ λμΉν μ μλ€.
(a,b) -> {return new ν΄λμ€(a,b);}
μ΄κ²μ μμ±μ μ°Έμ‘°λ‘ νννλ©΄ λ€μκ³Ό κ°λ€.
ν΄λμ€ :: new
'TIL' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[java] μ λ€λ¦ (0) | 2023.03.07 |
---|---|
[java] μ€νΈλ¦Ό μμ μ²λ¦¬ (0) | 2023.02.28 |
[java] μ€μ²© μ μΈκ³Ό μ΅λͺ κ°μ²΄ (0) | 2023.02.23 |
230102 곡λΆμΌμ§ - 컬λ μ νλ μμν¬ (0) | 2023.01.02 |
221224 곡λΆμΌμ§ - μ€μ²© μ μΈ (1) | 2022.12.24 |