arraylist列表无法在另一个类中识别

时间:2019-02-14 19:24:15

标签: java list intellij-idea minecraft bukkit

我正在为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 :(得分:1)

不需要静态导入

您的IDE出现错误的原因是由于输入错误。您在toggleList中定义了Freeze,但是尝试使用Freeze.togglelist来引用它(请注意,“列表”的拼写是小写的“ l”)。

如果您的类在同一包中,则不需要其他import指令。但是,如果Freeze位于不同的程序包中,则需要import的常规Freeze(即非静态),这是您的IDE应该能够轻松解决的问题。 / p>

答案 1 :(得分:0)

静态导入

向您的Toggle类添加static import语句。

import static my.package.Freeze ;

或更改您的代码行以使用fully-qualified名称。

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

如果使用检索到的UUID对象,则还需要导入that class

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