2013-11-03 5 views
-2

Мой основной класс это:Как получить экземпляр из класса

private Integer id; 

private String code; 
private static Main instance; 

@Override 
public void onEnable() { 
    saveDefaultConfig(); 
    reload(); 
} 

public void reload() { 
    id = 20; 
    code = "code"; 
} 

public Integer getID() { 
    return id; 
} 

public String getCode() { 
    return code; 
} 

public Main() { 
    instance = this; 
} 

И на моем другом классе им пытаются GetId и Получить код Это мой код для получения кода и идентификатор. метод перезагрузки() называется onEnable (начальная)

Main main = new Main(); 
System.out.println(main.getCode()); 

и возвращает нуль.

+1

Вы вызываете 'reload()' перед вызовом 'getCode()'? Потому что вы инициализируете это методом 'reload()'. –

+0

Не возражаете ли вы публиковать 'onEnable()' и как вы это называете? –

+0

Это плагин для программы, onEnable вызывается при запуске плагина. и reload() вызывается перед getCode() – user2834628

ответ

0

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

public Main() 
{ 
    reload(); 
} 
+0

Нет перезагрузки() вызывается при запуске плагина. – user2834628

+0

Я не вижу, что где-нибудь в вашем коде ... Вы называете это где-то, где не публиковались? – Padawan

+0

Хорошо, я изменил его, метод OnEnabled вызывается при запуске плагина – user2834628

1

Instance переменные инициализируются значениями по умолчанию - 0 для int , false для boolean и т. Д. Ссылки на объекты инициализируются до null.

Таким образом, в вашем образце String ссылка code инициализирована на null. Вы никогда ничего не измените, прежде чем распечатать. Вот почему вы видите «null».

Мне нравится, как вы начали свой вопрос: «Мой главный класс - это». Это похоже на просмотр сообщения о переполнении стека из Йоды.

+0

Я добавил метод onEnable, который вызывается при запуске плагина, а метод reload() устанавливает код и идентификатор. Кстати, Йода? – user2834628

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