[JAVA] Lambda ๋žŒ๋‹ค 2

ํŽญ๊ท„์•ˆ๋…•ยท2024๋…„ 10์›” 21์ผ

JAVA

๋ชฉ๋ก ๋ณด๊ธฐ
5/9
post-thumbnail

๐Ÿ™„

Getterable ์ธํ„ฐํŽ˜์ด์Šค

interface Getterable{
    void getNum();
}

GetterableTest

public class GetterableTest {
    public static void main(String[] args) {
    class Test implements Getterable{

            @Override
            public void getNum() {

            }
        }

        Test t=new Test();
        t.getNum();

์ด๊ฑฐ๋ž‘

        Getterable g= ()-> { System.out.println(10);};
        g.getNum();

        // ๋žŒ๋‹ค๋กœ ๊ตฌํ˜„ํ•œ ๋ฉ”์„œ๋“œ์˜ ๋‚ด์šฉ ๋ถ€๋ถ„์ด ํ•œ ์ค„์ด๋ผ๋ฉด {} ์ƒ๋žต๊ฐ€๋Šฅ
        Getterable g1=()-> System.out.println(10);
        }
}
    

์ด๊ฑฐ๋ž‘ ๊ฐ™์€ ๋œป

๐Ÿ˜ฎ

LambdaPractice ์ธํ„ฐํŽ˜์ด์Šค

public interface LambdaPractice { // ๊ตฌํ˜„ํ•  ๋ฉ”์„œ๋“œ๊ฐ€ ํ•˜๋‚˜๋ฟ์ด๋ฉด ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
    void printName();
}

LambdaPracticeTest

๋žŒ๋‹ค๋ฅผ ์ด์šฉํ•ด์„œ LambdaPractice ์ธํ„ฐํŽ˜์ด์Šค ์•ˆ์˜ printName ๋ฉ”์„œ๋“œ์˜ ๊ธฐ๋Šฅ์„ "ํ™๊ธธ๋™์ž…๋‹ˆ๋‹ค."๊ฐ€ ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์—ฌ ํ˜ธ์ถœํ•˜์—ฌ ํ™•์ธํ•ด๋ณด์„ธ์š”.

  • ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†์œผ๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž๋ฆฌ์˜ ์†Œ๊ด„ํ˜ธ ์ƒ๋žต ๋ถˆ๊ฐ€
LambdaPractice lam=()-> System.out.println("ํ™๊ธธ๋™์ž…๋‹ˆ๋‹ค.");
lam.printName();

+)
์ด๋ ‡๊ฒŒ nameList ์‰ฝ๊ฒŒ ์ถœ๋ ฅ ๊ฐ€๋Šฅ

List<String> nameList=new ArrayList<>();
nameList.add("๊ณ ๊ธธ๋™");
nameList.add("์ด๊ธธ๋™");
nameList.add("๊น€๋‘˜๋ฆฌ");

nameList.forEach((e)->{
System.out.println(e);
});

์ง„์งœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ™๋‹ค

๐Ÿ˜

LambdaPractice1,2,3,4 ์ธํ„ฐํŽ˜์ด์Šค

interface LambdaPractice1 {

    void printName(String name);
}

interface LambdaPractice2 {

    void printMyInfo(String name,int age);
}

interface LambdaPractice3 {

    int getData();
}

interface LambdaPractice4 {

    int getResult(int a, int b);
}

LambdaPracticeTest

  • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์€ ์ƒ๋žต, ๋งค๊ฐœ๋ณ€์ˆ˜๋ช…์€ ์›ํ•˜๋Š”๋Œ€๋กœ
  • ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜๋ผ๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž๋ฃŒ์˜ ์†Œ๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ

๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜

LambdaPractice1 p1=name->System.out.println(name);
        p1.printName("๊ณ ๊ธธ๋™");

๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋‘˜

LambdaPractice2 p2=(name,age)->{
	System.out.println(name);
	System.out.println(age);
	};
p2.printMyInfo("๊ณ ๊ธธ๋™",43);

๋ฆฌํ„ดํƒ€์ž…์ด ์žˆ๋Š” ๋žŒ๋‹ค

: ๋ฆฌํ„ดํƒ€์ž…์ด ์žˆ๋Š” ๋žŒ๋‹ค์‹์€ ์ค‘๊ด„ํ˜ธ ์ƒ๋žต ๋ถˆ๊ฐ€๋Šฅ
: ์ค‘๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•˜๋ ค๋ฉด return ํ‚ค์›Œ๋“œ๋„ ์ƒ๋žตํ•ด์•ผํ•จ

LambdaPractice3 p3=()->{return 123;};
p3.getData();
LambdaPractice3 p3=()-> 123;
p3.getData();

๋ฆฌํ„ดํƒ€์ž…์ด ์žˆ๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋‘˜

LambdaPractice4 p4=(a,b)->{
	return a+b;
	};
p4.getResult(2,3);
LambdaPractice4 p4=(a,b)->a+b;
p4.getResult(2,3);

์™€ spring security๋‚˜ generic ํ•˜๋‹ค๊ฐ€ ๋žŒ๋‹คํ•˜๋‹ˆ๊นŒ ์žฌ๋ฐŒ๋‹ค
์ง„์งœ์ž„

๊ณ„์‚ฐ๊ธฐ

๋žŒ๋‹ค ์“ฐ๋ฉด ์ข‹์€ ์ 

LambdaPractice5 ์ธํ„ฐํŽ˜์ด์Šค

// ๊ณ„์‚ฐ๊ธฐ
interface LambdaPractice5 {
    int getResult(int a, int b);
}

LambdaPracticeTest

// ๊ณ„์‚ฐ๊ธฐ
LambdaPractice5 p5=(a,b)->a-b;
p5.getResult(10,5);

LambdaPractice5 p6=(a,b)->a*b;
p5.getResult(10,5);

LambdaPractice5 p7=(a,b)->a/b;
p5.getResult(10,5);

0๊ฐœ์˜ ๋Œ“๊ธ€