Помогите Объявление глобальной переменной

Genius_Lyrics

Активный участник
Пользователь
Баллы
76
Как объявить boolean переменную, которая будет доступна как в главном классе, так и в классе евент хандлера?
Гугл не помог, public boolean пробовал. Все равно красным подчеркивает
 
public static boolean b пишешь сверху класса

а там где она используется - пиши this.b = значение
А так лучше код кинь
 
Код чего? евент хандлера? Если да, то он пустой еще, там только If(b == true){ return;}
 
Так в итоге как глобальную переменную то объявить?
 
Так в итоге как глобальную переменную то объявить?
Вот тебе наглядный пример
PHP:
    public static boolean b;
    
    @EventHandler
    public void yourMethod(PlayerJoinEvent e) {
        if (b) {
            e.getPlayer().sendMessage("Boolean is true");
            b = !b;
            return;
        }
        e.getPlayer().sendMessage("Boolean is false");
    }
 
У меня евент хандлер - отдельный класс. В добавок к этому, эта переменная мне еще нужна будет в onCommand, который находится тоже в отдельном классе
 
У меня евент хандлер - отдельный класс. В добавок к этому, эта переменная мне еще нужна будет в onCommand, который находится тоже в отдельном классе
Ну так ты можешь спокойно получить значение статической переменной через YourClass.b. А вообще, лучше сделай ее приватной и создай для нее гетеры и сетеры.
 
Спасибо. Если что, мне это нужно было для того, чтобы евент выполнялся только после ввода команды игроком.
 
Ну так ты можешь спокойно получить значение статической переменной через YourClass.b. А вообще, лучше сделай ее приватной и создай для нее гетеры и сетеры.
статичные переменные...
не проще создать в каждом классе конструктор по типу
Main class:
public boolean flag = true

Listener:

Код:
public class Listener{

Main main;
public Listener(Main main){
this.main = main
}

@EventHandle
public void a(... event){
Bukkit.geLogger().info(String.valueOf(main.flag))
...
}
или что-то типо того
чё не?
 
статичные переменные...
не проще создать в каждом классе конструктор по типу
Main class:
public boolean flag = true

Listener:

Код:
public class Listener{

Main main;
public Listener(Main main){
this.main = main
}

@EventHandle
public void a(... event){
Bukkit.geLogger().info(String.valueOf(main.flag))
...
}
или что-то типо того
чё не?
Ты щас просто предложил еще один вариант реализации, не более.
 
Последнее редактирование:
Назад
Верх