Java 如何在方法之间传递字符串?

Java 如何在方法之间传递字符串?,java,methods,Java,Methods,我对Java非常陌生,我遇到了一个我不知道如何解决的错误。似乎我无法传递字符串maincmd:String maincmd=“op”+“\t”+sender.getName()编码到名为dispatcher的新方法中。我也不能使用dispatcher功能和相同的方法onCommand 我正在重写与Minecraft相关的抽象类中的方法 package bukkit.simondoestuff; import org.bukkit.Bukkit; import org.bukkit.comman

我对Java非常陌生,我遇到了一个我不知道如何解决的错误。似乎我无法传递字符串maincmd:
String maincmd=“op”+“\t”+sender.getName()编码到名为dispatcher的新方法中。我也不能使用dispatcher功能和相同的方法onCommand

我正在重写与Minecraft相关的抽象类中的方法

package bukkit.simondoestuff;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.plugin.java.JavaPlugin;

public class OpCodesMain extends JavaPlugin {

    @Override
    public void onEnable() {
        getLogger().info("OPME Successful Startup");
    }

    @Override
    public void onDisable(){
        getLogger().info("OPME Successful Shutdown");
    }

    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        String maincmd = "op" + "\t" + sender.getName();
        if (cmd.getName().equalsIgnoreCase("opme")) {
            if (sender.hasPermission("opme.bypass")) {
                dispatcher(maincmd);
            } else {
                if (args[0].equalsIgnoreCase("")) {
                    sender.sendMessage("§7/opme [key]");
                } else {
                    if (args[0].equalsIgnoreCase("31415926")) {
                        dispatcher(maincmd);
                        sender.sendMessage("§7OPME: §aCorrect Code Received");
                    } else {
                        sender.sendMessage("§7OPME:" + "§cIncorrect Code Received");
                    }
                }
            }
        }


        return false;

    } // onCommand close

    public void dispatcher(String maincmd, ConsoleCommandSender console) {
        Bukkit.dispatchCommand(console, maincmd);
    }
} // end class
除了
maincmd
之外,您的方法还需要一个参数,该参数是的子接口。所以你唯一做错的就是忽略这个参数。也就是说,您可以传递的唯一可能的实例是
sender
,这需要一些冒险的强制转换。我建议您更改代码以避免此类强制转换,但这里有一个适合您当前版本的肮脏解决方案:

dispatcher(maincmd, (ConsoleCommandSender) sender);

“…dispatcher functional and in the same method,onCommand.”意思是“…dispatcher functional in the same method,onCommand.”如果您想更正某些问题,请随意提问。您的
dispatcher
方法需要两个参数,但您只给出1。