일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Database
- python
- Spring boot
- 코틀린
- GPT-4's answer
- 자바암호
- chatGPT's answer
- lombok
- kotlin
- 자바네트워크
- write by GPT-4
- 시스템
- 웹 크롤링
- flet
- oracle
- write by chatGPT
- 자바
- 유닉스
- 파이썬
- Java
- 역학
- GIT
- NIO
- 뉴턴역학
- android
- 인프라
- 고전역학
- JVM
- 리눅스
- 소프트웨어공학
- Today
- Total
Akashic Records
How to use callbacks in Java 본문
Java에서 콜백은 일반적으로 인터페이스를 사용하여 구현됩니다. 콜백은 특정 이벤트가 발생하거나 특정 작업이 완료된 후 특정 메소드를 실행하는 방법입니다. 이는 비동기 이벤트 처리, 작업 완료 시 특정 동작 수행 또는 한 객체가 다른 객체에게 특정 이벤트에 대해 알리는 방법 등 다양한 시나리오에서 유용할 수 있습니다.
다음은 인터페이스를 사용하여 Java에서 콜백을 사용하는 방법에 대한 단계별 가이드입니다.
1. 콜백 인터페이스 정의:
콜백으로 호출할 메소드를 정의하는 인터페이스를 만듭니다. 이 인터페이스는 콜백을 받고자 하는 클래스에서 구현됩니다.
public interface Callback {
void onTaskCompleted(String result);
}
2. 호출 클래스에서 콜백 인터페이스 구현:
호출 클래스(또는 리스너)는 콜백 인터페이스를 구현하고 콜백 메소드에 대한 구현을 제공해야 합니다.
public class Listener implements Callback {
@Override
public void onTaskCompleted(String result) {
System.out.println("작업 완료! 결과: " + result);
}
}
3. 작업을 수행하는 클래스에 콜백 전달:
작업을 수행하는 클래스(또는 이벤트 소스)는 매개변수로 콜백 인터페이스를 수락해야 합니다. 이 클래스는 작업이 완료되거나 이벤트가 발생했을 때 리스너에게 알리기 위해 콜백 메소드를 사용합니다.
public class TaskPerformer {
private Callback callback;
public TaskPerformer(Callback callback) {
this.callback = callback;
}
public void performTask() {
// 작업 수행
String result = "작업 결과";
// 작업이 완료되었음을 리스너에게 알림
callback.onTaskCompleted(result);
}
}
4. 클래스를 함께 사용:
마지막으로, 리스너와 작업 수행자 클래스의 객체를 생성하고 작업을 수행하고 콜백을 받기 위해 함께 사용합니다.
public class Main {
public static void main(String[] args) {
// 콜백을 구현하는 리스너 생성
Listener listener = new Listener();
// 콜백을 전달하여 작업 수행자 생성
TaskPerformer taskPerformer = new TaskPerformer(listener);
// 작업 수행
taskPerformer.performTask();
}
}
이 코드를 실행하면 다음과 같은 출력이 나타납니다.
작업 완료! 결과: 작업 결과
이것은 작업이 완료되었을 때 리스너에게 알리기 위해 Java에서 콜백을 사용하는 방법을 보여줍니다. 이를 통해 비동기 이벤트 처리, 작업 완료 시 특정 동작 수행 등에 활용할 수 있으며, 콜백 메커니즘을 통해 코드의 유연성과 재사용성을 높일 수 있습니다.
'Library' 카테고리의 다른 글
Docker Container의 Script Reverse (0) | 2023.04.24 |
---|---|
Dockerfile, Docker Image Build (0) | 2023.04.24 |
7 keys to controlling serverless cloud costs (0) | 2023.04.21 |
Java로 실행된 프로세스를 종료하는 있는 bash script (0) | 2023.04.07 |
파이썬 코드를 자바스크립트로 변환하는 방법 (0) | 2023.03.24 |