Java8μμ μλ‘κ² μΆκ° λ κΈ°λ₯. κ°λ¨νκ² μμ½ νλ©΄ λ©μλλ₯Ό κ°λ¨ν κΈ°μ νλ κΈ°λ²
ꡬ문 Lambdaμ
(μλ£ν μΈμ, ...) -> { ... μμμ μ²λ¦¬ ...}
ꡬνν μΈν°νμ΄μ€ μ½λ
package project.lambda;
public interface InterfaceExample{
public abstract void exampleMethod(String name);
}
κΈ°λ³Έ λλ€ μμ
package project.lambda;
/**
* λλ€μ μμ μ
λλ€.
*/
public class LambdaExample{
public static void main(String...args){
// μ²λ¦¬λ₯Ό λλ€μμΌλ‘ ꡬν ν¨.
InterfaceExample lambda = (String name) -> {
System.out.println("μ΄κ²μ΄ λ°λ‘ λλ€("+name+")μ
λλ€");
};
// λλ€μμ μ€ν ν©λλ€.
lambda.exampleMethod("Lambda ^^");
}
}
μ΄μ μλ μ΅λͺ
(anonymouse) ν΄λμ€λ‘ μ²λ¦¬ ν¨
package project.lambda;
/**
* λλ€μ μ΄μ μ λλ€μ μ²λ¦¬λ₯Ό λμ νλ μ΅λͺ
ν΄λμ€(anonymouse) λ°©μ
* μ μμ μ
λλ€.
*/
public class AnonymouseExample{
public static void main(String... args){
// μ΅λͺ
ν΄λμ€λ₯Ό μ΄μ©ν΄μ ꡬν ν¨
InterfaceExample anonymouse = new InterfaceExample(){
public void exampleMethod(String name){
System.out.println("μ΄κ²μ΄ λ°λ‘ μ΅λͺ
ν΄λμ€("+name+") μ
λλ€");
}
};
// μ΅λͺ
ν΄λμ€ λ³μ μ€ν
anonymouse.exampleMethod("anonymouse");
}
}
λ°ν κ°μ Lambda μμ λ€
package project.lambda;
/**
* λλ€μ λ°νμ μμ μ
λλ€.
*/
public class LambdaReturnValueExample{
public static void main(String...args){
// μ²λ¦¬λ₯Ό λλ€μμΌλ‘ ꡬν ν¨.
InterfaceReturnValue lambda = (String name) -> {
return "("+name+")";
};
// λλ€μμ μ€ν ν©λλ€.
System.out.println("μ΄κ²μ΄ λ°λ‘ λλ€μ"+
lambda.exampleMethod("Lambda ^^")+" μ
λλ€");
// νλΌλ―Έν° νμ
μ μλ΅νκΈ°
lambda = (name) -> { return "<"+name+">";};
System.out.println("μ΄κ²μ΄ λ°λ‘ νμλ΅ λλ€μ"+
lambda.exampleMethod("Lambda ^^")+" μ
λλ€");
// νλΌλ―Έν°κ° ν κ°μΈ κ²½μ° κ΄νΈ μλ΅νκΈ°
lambda = name -> { return "{"+name+"}";};
System.out.println("μ΄κ²μ΄ λ°λ‘ κ΄νΈμλ΅ λλ€μ"+
lambda.exampleMethod("Lambda ^^")+" μ
λλ€");
// return λ¬Έλ§ μλ κ²½μ°μ μλ΅
lambda = name -> "["+name+"]";
System.out.println("μ΄κ²μ΄ λ°λ‘ returnλ¬Έ μλ΅ λλ€μ"+
lambda.exampleMethod("Lambda ^^")+" μ
λλ€");
}
}
/**
* λ°νκ°μ κ°λ μΈν°νμ΄μ€ μ.
*/
interface InterfaceReturnValue{
public String exampleMethod(String name);
}
λκΈ μμ:
λκΈ μ°κΈ°