2016-06-15 17 views
0

Ich arbeite an einem bereits vorhandenen Java-Programm, eine seiner Klassen berechnet einige boolesche Features. Einige private Methoden tun dies. Ihr Rückgabetyp ist Prädikat. Zum Beispiel:Abrufen von Wert einer Methode mit Prädikat-Rückgabetyp in Java

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

ich diese Funktion Wert abrufen möchten, habe ich diese einfache Aussagen:

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

Das Ergebnis sollte einen Booleschen Wert zurückgeben: true or false, aber es zeigt:

Feature1 is: [email protected]4e46 

Ich bin neu in Java-Programmierung, bitte helfen :(Danke.

Antwort

2

Sie a ein Objekt zurückgeben. So wird printtoString() für das Prädikat-Objekt aufrufen. Ich denke, Sie wollen das Ergebnis der apply Methode, also müssen Sie etw tun. wie diese

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

Wo das ChunkedBinaryExtraction Objekt kommt, müssen Sie wissen.