我正在开发一个预先存在的java程序,它的一个类计算一些 boolean 特征。一些私有(private)方法可以做到这一点。它们的返回类型是谓词。例如:
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);
结果应该返回一个 boolean 值:true 或 false
,但它显示:
Feature1 is: edu.washington.cs.knowitall.extractor.conf.ReVerbFeatures$3@1eb44e46
我是 Java 编程新手,请帮忙:( 谢谢。
最佳答案
您正在返回一个对象。因此,print
将在谓词对象上调用 toString()
。我猜你想要 apply
方法的结果,所以你需要做某事。像这样
ChunkedBinaryExtraction someObject = ...
Predicate<ChunkedBinaryExtraction> ftr1 = startArg1();
System.out.print("Feature1 is: " + ftr1.apply(someObject));
您必须知道 ChunkedBinaryExtraction
对象来自哪里。
关于java - 在java中检索具有Predicate返回类型的方法的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37839124/