我正在为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);
}
}
}
我如何才能将其识别为列表?
你的IDE出错的原因是因为拼写错误。你在toggleList
中定义Freeze
,但尝试用Freeze.togglelist
引用它(注意“list”用小写的'l'拼写)。
如果您的类在同一个包中,则不需要进一步的import
指令。但是,如果Freeze
在不同的包中,则需要常规的import
(即非静态)Freeze
,这是您的IDE应该能够轻松解决的问题。
在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 ;