Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] @FunctionalInterface - 함수형 인터페이스 예제와 활용 본문
Java의 @FunctionalInterface는 단 하나의 추상 메서드를 가진 인터페이스로, 함수형 프로그래밍에서 사용됩니다. 이번에는 @FunctionalInterface의 예제 코드와 활용에 대해 살펴보겠습니다.
예제 1: 단순한 계산기 함수형 인터페이스
@FunctionalInterface
interface Calculator {
int calculate(int a, int b);
}
public class Main {
public static void main(String[] args) {
Calculator adder = (a, b) -> a + b;
System.out.println("Addition: " + adder.calculate(5, 3)); // 출력 결과: Addition: 8
}
}
이 예제에서는 간단한 덧셈 계산을 수행하는 함수형 인터페이스인 Calculator를 정의하고 사용했습니다.
예제 2: 문자열을 가공하는 함수형 인터페이스
@FunctionalInterface
interface StringProcessor {
String process(String input);
}
public class Main {
public static void main(String[] args) {
StringProcessor toUpperCase = input -> input.toUpperCase();
System.out.println("Processed String: " + toUpperCase.process("hello")); // 출력 결과: Processed String: HELLO
}
}
이 예제에서는 문자열을 대문자로 변환하는 함수형 인터페이스를 정의하고 사용했습니다.
예제 3: 리스트 요소의 합계를 구하는 함수형 인터페이스
@FunctionalInterface
interface ListProcessor {
int process(List<Integer> list);
}
public class Main {
public static void main(String[] args) {
ListProcessor sumCalculator = list -> list.stream().mapToInt(Integer::intValue).sum();
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
System.out.println("Sum of numbers: " + sumCalculator.process(numbers)); // 출력 결과: Sum of numbers: 15
}
}
이 예제에서는 리스트의 요소들의 합계를 구하는 함수형 인터페이스를 정의하고 사용했습니다.
예제 4: 파일을 처리하는 함수형 인터페이스
@FunctionalInterface
interface FileProcessor {
void process(File file);
}
public class Main {
public static void main(String[] args) {
FileProcessor fileDeleter = file -> {
if (file.delete()) {
System.out.println("File deleted successfully: " + file.getName());
} else {
System.out.println("Failed to delete the file: " + file.getName());
}
};
File testFile = new File("test.txt");
fileDeleter.process(testFile);
}
}
이 예제에서는 파일을 삭제하는 함수형 인터페이스를 정의하고 사용했습니다.
예제 5: 조건에 따라 문자열을 처리하는 함수형 인터페이스
@FunctionalInterface
interface StringProcessor {
String process(String input);
}
public class Main {
public static void main(String[] args) {
StringProcessor stringProcessor = input -> {
if (input.length() > 5) {
return input.toUpperCase();
} else {
return input.toLowerCase();
}
};
System.out.println("Processed String: " + stringProcessor.process("Java")); // 출력 결과: Processed String: java
System.out.println("Processed String: " + stringProcessor.process("FunctionalInterface")); // 출력 결과: Processed String: FUNCTIONALINTERFACE
}
}
이 예제에서는 문자열의 길이에 따라 대소문자로 변환하는 함수형 인터페이스를 정의하고 사용했습니다.
예제 6: 두 수의 차를 구하는 함수형 인터페이스
@FunctionalInterface
interface Calculator {
int calculate(int a, int b);
}
public class Main {
public static void main(String[] args) {
Calculator subtractor = (a, b) -> a - b;
System.out.println("Subtraction: " + subtractor.calculate(10, 5)); // 출력 결과: Subtraction: 5
}
}
이 예제에서는 두 수의 차를 계산하는 함수형 인터페이스를 정의하고 사용했습니다.
'프로그래밍' 카테고리의 다른 글
[Java/자바] BinaryOperator를 활용한 예제 (0) | 2024.03.13 |
---|---|
[Java/자바] 다수의 Consumer 연산을 andThen()으로 처리하는 방법 (0) | 2024.03.13 |
[Java/자바] Consumer 인터페이스 예제와 활용 (0) | 2024.03.13 |
[Java/자바] BiConsumer 인터페이스 예제와 활용 (0) | 2024.03.13 |
[Java/자바] 숫자에 3자리마다 콤마(,) 찍는 방법과 예제 코드 (0) | 2024.03.13 |