인수로서의 람다 표현식 개념:
목적 예시:
기능적 인터페이스 구조:
changeStr() 메서드 정의:
ChangeStr() 메소드는 두 개의 매개변수를 사용합니다:
StringFunc 유형의 매개변수(기능적 인터페이스).
조작할 문자열입니다.
이 메소드는 문자열에 인터페이스 함수를 적용하고 결과를 반환합니다.
람다 표현식 사용:
예 1: 문자열의 문자를 반전시켜 이를 반전 변수에 할당하는 람다 표현식
문자열을 반전시키기 위해 람다 표현식을changeStr()에 전달합니다.
예 2: 공백을 하이픈으로 바꾸고changeStr()에 직접 전달되는 람다 표현식.
예 3: 문자열에서 문자의 대소문자를 반대로 하고changeStr()에도 직접 전달되는 블록 람다 식.
전체 코드 예:
다음은 람다 표현식을 ChangeStr() 메서드에 전달하는 방법을 보여주는 전체 코드입니다.
interface StringFunc { String func(String str); } class LambdaArgumentDemo { static String changeStr(StringFunc sf, String s) { return sf.func(s); } public static void main(String args[]) { String inStr = "Lambda Expressions Expand Java"; String outStr; System.out.println("Here is input string: " + inStr); // Expressão lambda para inverter a string StringFunc reverse = (str) -> { String result = ""; for (int i = str.length() - 1; i >= 0; i--) result += str.charAt(i); return result; }; // Passando a expressão lambda 'reverse' para o método outStr = changeStr(reverse, inStr); System.out.println("The string reversed: " + outStr); // Expressão lambda para substituir espaços por hífens outStr = changeStr((str) -> str.replace(' ', '-'), inStr); System.out.println("The string with spaces replaced: " + outStr); // Expressão lambda para inverter a caixa das letras outStr = changeStr((str) -> { String result = ""; char ch; for (int i = 0; i < str.length(); i++) { ch = str.charAt(i); if (Character.isUpperCase(ch)) result += Character.toLowerCase(ch); else result += Character.toUpperCase(ch); } return result; }, inStr); System.out.println("The string in reversed case: " + outStr); } }
예상 출력:
Here is input string: Lambda Expressions Expand Java The string reversed: avaJ dnapxE snoisserpxE adbmaL The string with spaces replaced: Lambda-Expressions-Expand-Java The string in reversed case: lAMBDA eXPRESSIONS eXPAND jAVA
관찰:
람다 식을 메서드에 대한 인수로 직접 전달하면 코드 유연성과 가독성이 높아집니다.
문자의 대소문자를 바꾸는 람다 식은 더 복잡하지만 여전히 메서드에 직접 전달할 수 있습니다. 일반적으로 더 복잡한 람다가 변수에 할당되는 것이 더 좋습니다.
위 내용은 이것을 인수로 람다 표현식으로 사용해 보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!