在java中检索具有Predicate返回类型的方法的值

时间:2016-06-15 15:03:24

标签: java class methods predicate

我正在研究一个预先存在的java程序,它的一个类计算一些布尔特征。一些私人方法这样做。他们的返回类型是Predicate。例如:

 private Predicate<ChunkedBinaryExtraction> startArg1() {
        return new Predicate<ChunkedBinaryExtraction>() {
            public boolean apply(ChunkedBinaryExtraction e) {
                return e.getArgument1().getRange().getStart() == 0;
            }
        };
    }

我想检索此功能值,我使用了这个简单的语句:

Predicate<ChunkedBinaryExtraction> ftr1=startArg1();
System.out.print("Feature1 is: "+ftr1);

结果应该返回一个布尔值:true or false,但它显示:

Feature1 is: edu.washington.cs.knowitall.extractor.conf.ReVerbFeatures$3@1eb44e46

我是Java编程的新手,请帮忙:(谢谢。

1 个答案:

答案 0 :(得分:2)

您正在返回一个对象。因此toString()将在谓词对象上调用apply。我想你想要ChunkedBinaryExtraction someObject = ... Predicate<ChunkedBinaryExtraction> ftr1 = startArg1(); System.out.print("Feature1 is: " + ftr1.apply(someObject)); 方法的结果,所以你需要做某事。像这样

ChunkedBinaryExtraction

{{1}}对象的来源,您必须知道。