Java 使用lambda表达式创建匿名类?

Java 使用lambda表达式创建匿名类?,java,java-8,Java,Java 8,Java 8支持lambda表达式,我想知道是否可以用lambda表达式替换匿名类?根据关于lambda表达式的说明,它们与实现函数接口的匿名类相同(接口只有一个方法) 因此,如果您有一个方法,该方法将具有函数接口的参数作为其引用类型,则可以在调用该方法时使用lambda表达式。例如:- public boolean testString(Predicate<String> tester, String str); 为什么lambda表达式有用? 当您希望将方法的核心功能留给调用方

Java 8支持lambda表达式,我想知道是否可以用lambda表达式替换匿名类?

根据关于lambda表达式的说明,它们与实现函数接口的匿名类相同(接口只有一个方法)

因此,如果您有一个方法,该方法将具有函数接口的参数作为其引用类型,则可以在调用该方法时使用lambda表达式。例如:-

public boolean testString(Predicate<String> tester, String str);
为什么lambda表达式有用? 当您希望将方法的核心功能留给调用方而不编写显式类/匿名类时。扩展上述示例:-

boolean isStringPalindrome = testString(s -> { /* code to check if string is palindrome */}, "madam");
boolean doesStringContainVowels = testString(s -> { /* code to check if string contains vowels */}, "abc");

是的,如果它可以被lambda替换的话。IntelliJ在可能的情况下为我做这件事。IntelliJ做这件事的功能是什么?Lambda是一个annonymous类的形式(前提是父类类型是一个最多有1个抽象方法的接口)。那么,用
替换匿名类
到底是什么意思呢?你能不能再多说一点,或者加上一个例子(psuedo代码)来说明你想要实现什么?idea light来问我。
boolean isStringPalindrome = testString(s -> { /* code to check if string is palindrome */}, "madam");
boolean doesStringContainVowels = testString(s -> { /* code to check if string contains vowels */}, "abc");