2016-06-15 28 views
0

我正在研究一個預先存在的java程序,其中一個類計算某些布爾特性。一些私人方法做到這一點。他們的返回類型是謂詞。例如:在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: [email protected]4e46 

我是新來的Java編程,請幫忙:(謝謝。

回答

2

你一個重新返回一個對象。所以print將在謂詞對象上調用toString()。我想你想要apply方法的結果,所以你需要做某事。像這樣

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

ChunkedBinaryExtraction對象來自,你必須知道。