>

UUID 목록이 필요한 MineCraft에 플러그인을 만들고있었습니다  이런 식으로하기로 결정했습니다

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);
        }
    }
}

목록으로 인식하려면 어떻게해야합니까?

  • 답변 # 1

    정적 가져 오기가 필요하지 않습니다

    IDE가 오류를 발생시키는 이유는 오타 때문입니다. 당신은 toggleList 를 정의  와이즈 비즈 그러나 Freeze 로 참조하려고 시도하십시오.  "list"는 소문자 'l'로 표시됩니다.

    클래스가 동일한 패키지에 있으면 더 이상 Freeze.togglelist 가 없습니다.  지시문이 필요합니다. 그러나 import  다른 패키지, 일반 Freeze 에   import 의 (정적이 아닌)  IDE가 쉽게 해결할 수 있어야합니다.

  • 답변 # 2

    정적 가져 오기

    Freeze 에 정적 가져 오기 명령문 추가  수업.

    Toggle
    
    

    또는 정규화 된 이름을 사용하도록 코드 줄을 변경하십시오.

    import static my.package.Freeze ;
    
    

    검색된 UUID 객체로 작업하는 경우 해당 클래스도 가져와야합니다.

    if ( my.package.Freeze.togglelist.contains( player.getUniqueId() ) ) {
    
    
    import java.util.List ; import java.util.UUID ;

관련 자료

  • 이전 python - 풍향 센서에서 ADC 값을 각도로 변환
  • 다음 각도 재료에서 매트 선택 목록에서 매트 목록 옵션을 간접적으로 사용하는 방법은 무엇입니까?