我正在研究一个预先存在的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编程的新手,请帮忙:(谢谢。
答案 0 :(得分:2)
您正在返回一个对象。因此toString()
将在谓词对象上调用apply
。我想你想要ChunkedBinaryExtraction someObject = ...
Predicate<ChunkedBinaryExtraction> ftr1 = startArg1();
System.out.print("Feature1 is: " + ftr1.apply(someObject));
方法的结果,所以你需要做某事。像这样
ChunkedBinaryExtraction
{{1}}对象的来源,您必须知道。