Como passar uma condição através de uma lambda como parâmetro?

Queria saber como fazer algo deste jeito:

`Log.sendMessage(“Uma mensagem com uma Filtered word”);

String filteredMessage = ChatFilter.filterMessage((message) -> message.contains(“Filtered word”));

System.out.println(filteredMessage); /Uma mensagem com uma /

class ChatFilter {

	public String filterMessage(Lambda lambda) {
        String message = Log.getNextMessage();
        String newMessage = "";
        if (lambda) {
            newMessage = /*code*/;
        }
    return newMessage;
}

}`

Não é bem isso que eu quero fazer mas é só um exemplo para saberem o que quero. Por favor, não me mostrem maneiras diferentes de fazer a mesma funcionalidade. E eu não quero usar o sistema de filtro java.util.stream#filter(), eu quero aprender a fazer o meu próprio filtro. Obrigado para as pessoas que me ajudarem.

Olá @Renan_da_Hikkit

Você pode utilizar o Predicate para fazer as suas lambdas, da uma olhada:

public class HelloWorld {
    public static void main(String[] args)  {
        teste(p -> p.length() > 5);
    }
  
    public static void teste(Predicate<String> p) {
        if(p.test("guj")) {
            System.out.println("Tem mais de 5"); 
        }
        else {
            System.out.println("Não tem mais de 5"); 
        }
    }
}
1 curtida