2012-02-24 3 views
1

Итак, когда я переопределяю метод toString(), используя нижеприведенный метод (так же, как я использую почти каждый из моих других классов домена во многих проектах), это вызывает нулевой указатель при создании экземпляра этого объекта. Удаление toString() устраняет эту ошибку. Не знаю, почему. :(Переопределение toString(), вызывающее нулевой указатель в классе grails

class Vertical { 

    String name 

    static constraints = { 
     name(nullable: true) 
    } 

    @Override 
    String toString() { 
     return name 
    } 
} 
+0

Wild. gt: grails вызывает некоторый метод на возвращаемом объекте 'toString'. В экземпляре' name' указано значение null, поэтому он пытается вызвать 'null.someMethod()', вызывая исключение NullPointerException. Для чего вам нужен метод toString override? – bezmax

+0

введите код, который ссылается на созданный экземпляр. умело там – aldrin

+0

def lol = new Вертикальный() – Noxville

ответ

5

Я бы немного более оборонительный и идти с:

@Override 
    String toString() { 
     return (name ?: "") 
    } 

Просто, чтобы убедиться, что не отправить обратно аннулирует, так как ToString должна быть версия для печати

+0

Да, я пошел с этим (ну, у меня не было «возвращения»). Все еще хочу знать, почему Грайлу это не нравится, p – Noxville

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