2016-06-15 8 views
0

Я работаю над уже существующей программой Java, один из ее классов вычисляет некоторые логические функции. Некоторые частные методы делают это. Их тип возврата - Предикат. Например:Извлечение значения метода с возвращаемым типом Predicate в java

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

Вы a re возвращающий объект. Таким образом, print вызовет toString() на объект предиката. Я думаю, вы хотите получить результат метода apply, поэтому вам нужно сделать sth. как этот

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

Где ChunkedBinaryExtraction объект приходит от, вы должны знать.

 Смежные вопросы

  • Нет связанных вопросов^_^