inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도코딩의 자바 기본편 - 풀코스 (20시간)

퀴즈 #12

람다식

214

김양우

작성한 질문수 4

1

 퀴즈12에서 람다식 질문있습니다

Runnable runnable1 = () -> {
for (int i = 1; i <=5; i++) {
System.out.println("A 상품 준비 " + i + "/5"); 
}

System.out.println(" -- A 상품 준비 완료 -- ");};

Runnable runnable1 = () -> {}
이렇게 람다식이 쓰이던데 람다식으로 안쓰려면 어떻게 써야하나요???

java 객체지향

답변 1

1

나도코딩

안녕하세요?
람다식을 사용하지 않고 Runnable 을 구현하려면 이렇게 할 수 있습니다.

Runnable runnable1 = new Runnable() {
    @Override
    public void run() {
        for (int i = 1; i <= 5; i++) {
            System.out.println("A 상품 준비 " + i + "/5");
        }
        
        System.out.println(" -- A 상품 준비 완료 -- ");
    }
};

위 코드는 람다식을 이용하지 않고 익명 클래스를 직접 구현한 것인데요. 익명 클래스 또한 사용하지 않으려면 다음과 같이 별도의 클래스를 정의하고 Runnable 인터페이스를 구현하여 run() 메서드를 정의하는 방법도 있습니다.

public class MyRunnable implements Runnable {
    @Override
    public void run() {
        for (int i = 1; i <= 5; i++) {
            System.out.println("A 상품 준비 " + i + "/5");
        }
        
        System.out.println(" -- A 상품 준비 완료 -- ");
    }
}

// main() 에서 사용 예시
Runnable runnable1 = new MyRunnable();

궁금증 해결에 도움되길 바라겠습니다 😊
감사합니다.

0

김양우

죄송합니다... 제가 잘 몰라서요...


Runnable runnable1 = new Runnable() { 
    @Override 
   public void run()  { 
     for (int i = 1; i <= 5; i++) {
       System.out.println("A 상품 준비 " + i + "/5");
    } 
        System.out.println(" -- A 상품 준비 완료 -- "); } };

이 상태 처럼 쓰려고 하는데 이 상태로 쓰려고하면 new Runnable() 이 부분이 회색변해버리고

Thread thread = new Thread(runnable1);
Thread thread1 = new Thread(runnable2);
thread.start();
thread1.start();

Thread thread = new Thread(runnable1)
이 쓰레드에 넣을때 runnable1 이 없다고 뜨고

thread.start(); 다른 쓰레드 start들 모두 빨간색으로 뜨네요 왜이런걸까요ㅠㅠ

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

1

146

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

119

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

70

1

사고력 키우는 법이 어떤게 있나요?

0

93

2

getter setter

0

103

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

80

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

76

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

115

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

167

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

117

2

응용이 어렵습니다.

0

206

2

IntelliJ가 보이지 않습니다.

0

186

3

JDK 버전 문의

0

129

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

121

2

Iterator 문의

0

105

1

코드 순서 문의

0

142

1

클래스 메소드

0

149

2

Quiz_05 관련 질문드립니다 !

0

118

2

다운로드가 안됩니다

0

165

2

다형성

0

120

2

HashMap

0

80

2