Вы реализуете Fieldables
с нуля. Я подозреваю, что проблема скрыта где-то в ваших удаленных строках - возможно, один из реализованных методов возвращает null
, где он должен возвращать реальное значение.
- Попробуйте вместо этого добавить экземпляры
Field
и проверьте, есть ли у вас такая же ошибка
- Используйте отладчик и добавьте точку останова на
NullPointerException
, которая должна помочь найти действительную причину вашей проблемы.
Теперь, когда вы добавили реализацию своей Fieldable
, я почти уверен, что NPE происходит, потому что вы возвращаете некоторые значения null
в своей реализации.
Горячий кандидат - ваша реализация readerValue()
, которая возвращает null
. JavaDoc объясняет, что Reader
, который возвращается этим методом, может использоваться во время индекса для генерации токенов индекса. индексирование - это то, что происходит автоматически, когда вы добавляете более одного Fieldable
к документу.
Попробуйте:
@Override
public Reader readerValue() {
return new StringReader(path);
}
Измените вашу реализацию и избегайте возврата null
, если в JavaDoc четко не указано, что null
является допустимым возвращаемым значением.
(и: даже если Field
устарело: используйте его для проверки, чтобы выяснить, связана ли проблема с Fieldables
. Если ваш код работает с Field
объектами, тогда вы знаете, где искать)