arraylist列表未在另一个类中被识别

问题描述 投票:-1回答:2

我正在为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);
        }
    }
}

我如何才能将其识别为列表?

java list intellij-idea minecraft bukkit
2个回答
1
投票

No Static Import Required

你的IDE出错的原因是因为拼写错误。你在toggleList中定义Freeze,但尝试用Freeze.togglelist引用它(注意“list”用小写的'l'拼写)。

如果您的类在同一个包中,则不需要进一步的import指令。但是,如果Freeze在不同的包中,则需要常规的import(即非静态)Freeze,这是您的IDE应该能够轻松解决的问题。


0
投票

Static import

static import课程中添加Toggle语句。

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 ;
© www.soinside.com 2019 - 2024. All rights reserved.