список arraylist не признается в другом классе - PullRequest
0 голосов
/ 14 февраля 2019

Я создавал плагин для MineCraft, которому нужен список UUID, и я решил сделать это следующим образом

public class Freeze extends JavaPlugin implements CommandExecutor {
    public static List<UUID> toggleList = new ArrayList<UUID>();
}

Однако, когда я использую список в другом классе, он говорит cannot resolve symbol.Вот класс для использования списка, не создавая его

import org.bukkit.Location;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerMoveEvent;

public class Toggle implements Listener {
    @EventHandler
    public void onPlayerMove(PlayerMoveEvent evt) {
        Player player = evt.getPlayer();
        if (Freeze.togglelist.contains(player.getUniqueId())){
            Location back = new Location(evt.getFrom().getWorld(), evt.getFrom().getX(), evt.getFrom().getY(), evt.getFrom().getZ());
            evt.getPlayer().teleport(back);
        }
    }
}

как я могу заставить его распознавать его как список?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Статический импорт не требуется

Причина, по которой ваша среда IDE выдает ошибку, связана с опечаткой.Вы определяете toggleList в Freeze, но пытаетесь сослаться на него с Freeze.togglelist (обратите внимание, что «список» пишется с маленькой буквы «l»).

Если ваши классы находятся в одном пакете,дальнейшие директивы import не требуются.Однако, если Freeze находится в другом пакете, требуется обычный import (т. Е. Нестатический) Freeze, что ваша IDE должна легко разрешать.

0 голосов
/ 15 февраля 2019

Статический импорт

Добавьте оператор статический импорт в класс Toggle.

import static my.package.Freeze ;

Или измените строку кода, чтобы использовать полное имя name.

if ( my.package.Freeze.togglelist.contains( player.getUniqueId() ) ) {

А если вы работаете с извлеченными UUID объектами, вам также необходимо импортировать этот класс .

import java.util.List ;
import java.util.UUID ;
...