-1

我的 java 插件有问题。这是我以前从未有过的。正常,一切顺利。

这是代码:

package me.brian.CubeRanks;

import me.brian.CubeRanks.CubeRanks;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.logging.Logger;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;


public class CubeRanks {

    public class CubeRanks extends JavaPlugin {

        public static CubeRanks plugin;
        public final Logger log = Logger.getLogger("Minecraft");
        public boolean enabled = false;
        public final PlayerListener pl = new PlayerListener(this);
        public final ArrayList<Player> OreHunterUsers = new ArrayList<Player>();
        public String cr = "[CubeRanks] ";


        @Override
        public void onEnable() {
            log.info(cr + "is now enabled.");   
            PluginManager pm = getServer().getPluginManager();
            pm.registerEvents(pl, this);

        }

        @Override
        public void onDisable() {
            log.info(cr + "is now disabled.");
        }

        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if(commandLabel.equalsIgnoreCase("CubeRanks")) {
                if(args.length==0) {
                    if(!enabled) {
                        enabled = true;
                        ((Player) sender).sendMessage(ChatColor.GREEN + cr + "is now enabled");
                    }
                    else {
                        enabled = false;
                        ((Player) sender).sendMessage(ChatColor.RED + cr + "is now disbaled");
                    }
                }
            }
            return false;
        }
    }
}

有人能看出什么问题吗?

整个错误代码:

说明 资源路径 位置 类型 嵌套类型 CubeRanks 不能隐藏封闭类型 CubeRanks.java /CubeRanks/src/me/brian/CubeRanks 第 16 行 Java 问题

错误照片:这是错误

4

1 回答 1

0

您有一个包含同名类的类。我不确定你为什么有那个外部CubeRanks类,但要么摆脱外部类,要么重命名其中一个。

public class CubeRanks { // remove or rename

    public class CubeRanks extends JavaPlugin { // or rename this
        ...
    }

}

从语法上讲,您不能拥有与其外部类同名的内部类的原因是为了消除以下歧义:

public class Ambiguous {
    public class Ambiguous {
        Ambiguous a; // <-- which type is Ambiguous referring to here?
    } 
}

您可能会争辩说最近的封闭类型名称可以优先,但是您将如何引用外部类型?虽然理论上有一些方法可以围绕所有这些设计一种语言,但禁止它更容易。

于 2013-08-09T19:44:28.223 回答