将方法作为另一种方法的参数



我想做这样的事情:

public class Myclass() {
ArrayList<Object> objects;
public Myclass() {
    this.objects = new ArrayList<>();
}
public ArrayList<Object> callObjectAndMethod(Method method, String string) {
    ArrayList<Object> returnlist = new ArrayList<>();
    // call method for given object reference. I also assume that return value of the method is String
    String output = object.method();
    for (Object object : this.objects) {
       if (object.method.contains(string)) {
           returnlist.add(object.method());
       }
    return returnlist; 
    }
}

是否可以将方法传递为另一种方法的参数?我也想对多种变量类型进行这种迭代。int,string,double是可以创建与多种输入类型一起使用的方法。(可能不是(,但是我只是想减少我必须写的线的数量。如果我要为所有要比较或使用复制纸条技术和更改小东西(这不好(的所有方法编写此东西,我将有很多写作。

您可以使用Java-8功能编程。它允许使用Function Interfaces创建称为lambda expressions的实现。这些lambda表达式可以作为变量传递给其他方法。例如

谓词islength = string-> string.length((== 10;

现在可以将此作为参数传递给任何方法。因此,您可以使用Java 8功能编程来基本上以参数为基本。

boolean testTruth(Predicate<T> predicate,T dataUnderTest){
     predicate.test(dataUnderTest);
}

希望它有帮助!

快速阅读有关如何使用的信息

最新更新