주요 개념
실제 예: SomeTest 일반 기능 인터페이스
SomeTest 일반 인터페이스를 사용하여 다양한 유형(예: Integer, Double, String)으로 람다를 구현할 수 있습니다.
코드
// Interface funcional genérica com dois parâmetros que retorna um boolean interface SomeTest<T> { boolean test(T n, T m); } public class GenericFunctionalInterfaceDemo { public static void main(String[] args) { // Expressão lambda para verificar se um inteiro é fator de outro SomeTest<Integer> isFactor = (n, d) -> (n % d) == 0; if (isFactor.test(10, 2)) { System.out.println("2 is a factor of 10"); } // Expressão lambda para verificar se um Double é fator de outro SomeTest<Double> isFactorD = (n, d) -> (n % d) == 0; if (isFactorD.test(212.0, 4.0)) { System.out.println("4.0 is a factor of 212.0"); } // Expressão lambda para verificar se uma string faz parte de outra SomeTest<String> isIn = (a, b) -> a.indexOf(b) != -1; String str = "Generic Functional Interface"; System.out.println("Testing string: " + str); if (isIn.test(str, "face")) { System.out.println("'face' is found."); } else { System.out.println("'face' not found."); } } }
나가기
2 is a factor of 10 4.0 is a factor of 212.0 Testing string: Generic Functional Interface 'face' is found.
예제 설명
일반 인터페이스 정의:
interface SomeTest<T> { boolean test(T n, T m); }
T는 특정 유형(Integer, Double, String 등)으로 대체될 일반 유형입니다.
람다 표현식 사용:
동일한 인터페이스 재사용:
SomeTest 인터페이스는 다양한 데이터 유형(Integer, Double, String)과 함께 사용되어 제네릭의 유연성을 보여줍니다.
일반 기능 인터페이스의 이점
추천 운동
앞서 언급한 NumericFunc 기능적 인터페이스를 일반 인터페이스로 다시 디자인하십시오. 숫자의 제곱을 계산하거나 숫자가 짝수인지 확인하는 등의 작업을 수행하는 데 사용합니다.
전체 예: NumericFunc를 일반으로 리팩터링
// Interface funcional genérica com um parâmetro e um retorno interface NumericFunc<T> { T apply(T n); } public class GenericNumericFuncDemo { public static void main(String[] args) { // Lambda para calcular o quadrado de um número inteiro NumericFunc<Integer> square = (n) -> n * n; System.out.println("Quadrado de 5: " + square.apply(5)); // Saída: 25 // Lambda para calcular o quadrado de um número Double NumericFunc<Double> squareDouble = (n) -> n * n; System.out.println("Quadrado de 3.14: " + squareDouble.apply(3.14)); // Saída: 9.8596 // Lambda para verificar se um número é par (retorna "Par" ou "Ímpar") NumericFunc<Integer> isEven = (n) -> (n % 2 == 0) ? n : -1; System.out.println("Resultado Numero pares de : Resultado com multiplos valores " + isEven.apply(15)) ; } }
출력:
Quadrado de 5: 25 Quadrado de 3.14: 9.8596 Resultado Número pares de : Resultado com múltiplos valores -1
위 내용은 일반 기능 인터페이스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!