Как сказать ломбок, которые не создают геттер и сеттер для определенного поля [дубликат]

Ссылка NullReferenceException или Object, не установленная на экземпляр объекта, возникает, когда объект класса, который вы пытаетесь использовать, не создается. Например:

Предположим, что у вас есть класс с именем Student.

public class Student
{
    private string FirstName;
    private string LastName;
    public string GetFullName()
    {
        return FirstName + LastName;
    }
}

Теперь рассмотрим другой класс, в котором вы пытаетесь получить полное имя учащегося.

public class StudentInfo
{      
    public string GetStudentName()
    {
        Student s;
        string fullname = s.GetFullName();
        return fullname;
    }        
}

Как видно из вышеприведенного кода, оператор Student s - объявляет только переменную типа Student, обратите внимание, что класс Student не создается в этой точке. Следовательно, когда выполняется выполнение инструкции s.GetFullName (), она выкинет исключение NullReferenceException.

110
задан Joachim Sauer 3 November 2011 в 13:42
поделиться

2 ответа

Вы можете передать уровень доступа в аннотации @Getter и @Setter. Это полезно для защиты или защиты получателей или сеттеров. Его также можно использовать для переопределения по умолчанию.

С помощью @Data вы по умолчанию открываете доступ к аксессуарам. Теперь вы можете использовать специальный уровень доступа NONE, чтобы полностью опустить аксессор, например:

@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;
208
ответ дан Michael Piefel 28 August 2018 в 18:36
поделиться

Согласно @Data description вы можете использовать:

Все созданные геттеры и сеттеры будут общедоступными. Чтобы переопределить уровень доступа, аннотируйте поле или класс с явной аннотацией @Setter и / или @Getter. Вы также можете использовать эту аннотацию (объединив ее с AccessLevel.NONE), чтобы подавить генератор и / или сеттер вообще.

25
ответ дан Mark Rotteveel 28 August 2018 в 18:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: