2013-11-01 4 views
-2

enter image description here У меня есть пользовательский класс для объекта, как показано ниже:Пользовательский объект и использовать его

public class StudentState implements Serializable { 

    private static final long serialVersionUID = -3001666080405760977L; 

    public CourseState CourseState; 

    public class CourseState implements Serializable { 

     private static final long serialVersionUID = -631172412478493444L; 

     public List<Lessonstates> lessonstates; 

    } 

    public class Lessonstates implements Serializable { 

     private static final long serialVersionUID = -5209770078710286360L; 
     public int state; 

    } 
} 

Теперь я хочу, чтобы инициализировать Lessonstates в своем коде, чтобы использовать его. Я сделал это, но есть ошибка:

CourseState state = test.new CourseState(); 
Lessonstates newLesson = state.new Lessonstates(); 

Я попытался это также:

Lessonstates newLesson = new CourseState().new Lessonstates(); 

Ошибки является StudentState.CourseState.Lessonstates не может быть разрешена к типу ли кто-нибудь может помочь мне, как это исправить?

ответ

1

Вам просто нужно создать экземпляр Lessonstates из StudentState, такой же, как CourseState:

StudentState test = new StudentState(); 
CourseState state = test.new CourseState(); 
Lessonstates newLesson = test.new Lessonstates(); 

Так как CourseState и Lessonstates являются внутренние классы StudentState.

В противном случае вы можете вывести наши внутренние классы из StudentState или сделать их статическими, чтобы иметь возможность создавать их без экземпляра StudentState.

+0

спасибо за ответ. оно работает – Rudi

3

Это довольно просто:

CourseState state = new CourseState(); 
state.lessonstates = new ArrayList<Lessonstates>(); 

объекты должны быть выделены, прежде чем они могут быть доступны. После того, как выделено вы можете получить доступ к его члену с . (точка) нотации

+0

Итак, как я могу использовать NewLesson? например, как я могу установить NewLesson.state = 1; ? @blackbelt – Rudi

+0

Lessonsates lessonState = new Lessonsates(); lessonState.state = 1; – Blackbelt

+0

@blackbely, но он говорит: Доступный экземпляр типа StudentState не доступен. Должен квалифицировать распределение с помощью экземпляра экземпляра типа StudentState – Rudi

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