在Java中是否可以使用参数来引用方法? 给我澄清一下: 我想知道是否可以编写这样的代码
public boolean customEquals(ClassType object) {
Predicate<MethodReference> compare = (getter) -> {
return this::getter.equals(object::getter);
};
return compare.test(MethodReference);
}
其中ClassType是类,其中声明了customEquals方法 MethodReference是指向吸气剂的一些链接
主要思想是我想将方法传递给接口,并且接口应针对当前对象和参数对象执行此方法
答案 0 :(得分:0)
参考您的观点
主要思想是我想将方法传递给接口,接口应该对当前对象和参数对象执行此方法
可以通过反射传递执行方法。请参考下面的代码部分:
package org.test;
import java.lang.reflect.Method;
public interface SimpleInterface {
public Object exec(Method method, Object param0, Object param1);
}//interface closing
该接口具有一个方法,该方法将“方法”作为参数。
package org.test;
import java.lang.reflect.Method;
public class SimpleClass implements SimpleInterface{
public Integer simpleMethod(Integer a, Integer b) {return a+b;}
@Override
public Object exec(Method method, Object param0, Object param1) {
Object retVal=null;
try{retVal=method.invoke(this, param0, param1);}catch(Exception e) {e.printStackTrace();}
return retVal;
}//exec closing
} //课程结束
接口实现以及其他方法,将传递执行该方法。
package org.test;
import java.lang.reflect.Method;
public class SimpleTester {
public static void main(String[] args) throws Exception{
SimpleClass obj=new SimpleClass();
Method method=obj.getClass().getMethod("simpleMethod", Integer.class, Integer.class);
Object val=obj.exec(method, new Integer(1), new Integer(2));
System.out.println(val);
}//main closing
}//class closing
获取方法引用并传递给接口以执行的类。
以上使用反射来实现功能。
注意:上面的示例是JDK8的