Да, подход
functionAcceptsMethod(() -> funWithParams("abcd"));
в порядке, если ваша цель просто передать ссылку на метод и получить аргументы в параметрах метода functionAcceptsMethod
, затем использовать Consumer<T>
как Аргумент получателя функции
Как вы хотели в примере:
public static <T> void functionAcceptsMethod(Consumer<T> consumer, T t){
consumer.accept(t);
}
Это универсальная c версия, которая будет принимать любой метод с одним входным параметром. и пример использования:
public void example(){
// Automatic type inferring
functionAcceptsMethod(this::func, "f");
functionAcceptsMethod(this::func2, 0);
// Explicit type specification
functionAcceptsMethod<Float>(this::func3, 0f);
}
public void func(String s){
System.out.println(s);
}
public void func2(int i){
System.out.println(i);
}
public void func3(float f){
}