2016-06-21 3 views
0

Я пишу неявные записи для нескольких классов Java DO, поэтому я могу использовать Json.toJson() для возврата данных в виде строки JSON.Определение неявных писем

Я создал объект ImplicitsWrites, где у меня есть, и импортировал его в класс контроллера.

Однако во время complilation я получаю: value getUserId is not a member of com.domain.UserDO Note: implicit value <myDOClass> is not applicable here because it comes after the application point and it lacks an explicit result type

Просто к сведению, getUserId() является допустимым методом в DO.

Пример записи заключается в следующем:

implicit val userDOWrite = new Writes[UserDO] { 
    def writes(userDO: UserDO) = Json.obj(
     "userId" -> userDO.getUserId(), 
     "rowType" -> userDO.getName() 
    ) 
    } 

Просто к сведению. Возможно, это поможет определить проблему. DO имеет аннотацию @Data (lombok), поэтому генерируются методы get/set.

Я определяю неявное неправильное? Если да, то каков правильный способ сделать это?

+0

'extends AnyRef' не имеет к этому отношения. Основная проблема: 'value getUserId не является членом com.domain.UserDO'. Проверьте консоль scala 'import com.domain.UserDO; новый UserDO (..). getUserId' – cchantep

+0

Просто заметьте. Возможно, это поможет определить проблему. DO имеет аннотацию @Data (lombok), поэтому генерируются методы get/set. –

+0

Вы можете проверить его на консоли Scala (например, 'console' из SBT) – cchantep

ответ

0

Scala не распознает ломбок-геттер/сеттеры, если файл уже не скомпилирован. В проектах, представляющих собой сочетание как java, так и Scala, lombok в настоящее время не поддерживается должным образом.