Помогите в классе не работает объект главного класса

LalkaLalka

Новичок
Пользователь
Баллы
11
Имя в Minecraft
LALKATOP
У меня есть класс, который содержит в себе некоторые методы, которые мне нужно вызвать из другого класса. И этот класс использует объект главного класса, чтобы с помощью него брать настройки из конфига. Но почему-то когда вызывается метод из этого класса, то в консоли пишет ошибку о том, что объект главного класса равен null. Почему так может быть?
 
Возможно ты вызываешь метод до того, как выдал обьект главного класса другому. Либо вообще не выдал.
 
Ну дак и где ты видишь запуск конструктора EconomyManager? Его нет, отсюда plugin остается null.
У тебя три варианта:
1. В EconomyManager сделать вместо конструктора блок:
Код:
static {
    EconomyManager.plugin = Business.plugin;
}
2. В onEnable() класса Business вызвать конструктор на самом начале:
Код:
new EconomyManager(this);
3. В классе EconomyManager использовать plugin класса Business, тобишь обращаться черезе Business.plugin.

Все три варианта ужасны, но пока ты только разбираться начинаешь, сойдет.
Лучше не использоват статики, а передавать класс плагина ("главный класс") другим классам через конструктор (это уже на примере 2 варианта, + обьект сохраняешь в классе плагина, внутри EconomyManager методы должны быть НЕ статичны). Тот же EconomyManager ты можешь хранить как обьект в классе плагина, оттуда сделать метод getEconomyManager() и т.д.
 
Ну дак и где ты видишь запуск конструктора EconomyManager? Его нет, отсюда plugin остается null.
У тебя три варианта:
1. В EconomyManager сделать вместо конструктора блок:
Код:
static {
    EconomyManager.plugin = Business.plugin;
}
2. В onEnable() класса Business вызвать конструктор на самом начале:
Код:
new EconomyManager(this);
3. В классе EconomyManager использовать plugin класса Business, тобишь обращаться черезе Business.plugin.

Все три варианта ужасны, но пока ты только разбираться начинаешь, сойдет.
Лучше не использоват статики, а передавать класс плагина ("главный класс") другим классам через конструктор (это уже на примере 2 варианта, + обьект сохраняешь в классе плагина, внутри EconomyManager методы должны быть НЕ статичны). Тот же EconomyManager ты можешь хранить как обьект в классе плагина, оттуда сделать метод getEconomyManager() и т.д.
Спс!
 
блин, все что ты сказал попробовал, но не робит
И не должно. Нужно правильно кодить, а не так как ты.
Код:
public class Main extends JavaPlugin {
    private EconomyManager eco;

    @Override
    public void onEnable() {
        this.saveDefaultConfig();
        this.reloadConfig();
        this.eco = new EconomyManager(this);
        this.getCommand("bus").setExecutor(new Commands(this.eco));
    }
}
 
Последнее редактирование:
присваиваете себе, а ещё и деньги за помощь собираете.
Покажи где собираю? Ты похоже опять меня с кем то перепутал. И это уже на зависть смахивает. Если ты не можешь сам зарабатывать, никто же не виноват.
 
Назад
Верх