【发布时间】:2021-08-30 12:34:35
【问题描述】:
我正在尝试声明一个接受任何类型的方法引用的变量Function
此方法引用将在映射器中使用,我接受一些输入并通过调用引用另一个对象的方法来映射相应的值。
@Data // Lombok
public class ReferenceSample<T, R> {
private final Function<T, R > methodReference; // should be able to accept any method reference
}
以下是可能的方法
public class Common {
public static String getMethod1(String a) {
// Process
return "result1";
}
public static SomeEnum getMethod2(String b) {
// Process
return SomeEnum.DATA;
}
}
当我尝试创建对象时
new ReferenceSample(Common::getMethod1);
我收到以下错误
java: incompatible types: invalid method reference
incompatible types: java.lang.Object cannot be converted to java.lang.String
【问题讨论】:
-
查看 java.lang.reflect
-
@ControlAltDel 你能详细说明你指的是什么吗?
-
这会有什么用?你会如何调用这个函数?
-
@ControlAltDel 我不确定我应该在这里用反射做什么。