Nec*_*ro. 1 java arguments isset
我是Java的新手,我正在尝试查看设置的参数是否为空,如果是,则向其发送消息,然后终止该脚本.它似乎没有出现,因为我把论点留空了,我仍然只是没有得到我的信息,但似乎它返回错误.
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
Player player = (Player) sender;
if(commandLabel.equalsIgnoreCase("register")){
if(args[0].length() == 0){
player.sendMessage(ChatColor.GOLD + "You Did Not Set A Password! (Ex: /register mysupersecretpassword)");
return false;
}
}
return false;
Run Code Online (Sandbox Code Playgroud)
最终解决方案
if(args.length == 0){
Run Code Online (Sandbox Code Playgroud)
不
if(args[0].length() == 0){
Run Code Online (Sandbox Code Playgroud)
你的问题是你检查args长度的第0个位置.
if(args[0].length() == 0){
Run Code Online (Sandbox Code Playgroud)
需要是
if(args.length == 0){
Run Code Online (Sandbox Code Playgroud)
事实上,如果你检查args长度的第0个位置,你可能会得到一个超出界限的数组错误.