我是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;
最终解决方案
if(args.length == 0){
不会
if(args[0].length() == 0){
答案 0 :(得分:5)
你的问题是你检查args长度的第0个位置。
if(args[0].length() == 0){
需要
if(args.length == 0){
事实上,如果你检查args长度的第0个位置,你可能会得到一个超出界限的数组错误。
答案 1 :(得分:1)
考虑一下:(args.length > 0) && (args[0].equals("") == true)
从具有空" $ 1"的Shell脚本执行时发生。 jim @ U10netbook:〜/ workspace / MIDI $ ./Run
#!/bin/sh
#
# @(#)$Id$
#
# Purpose: Run MIDI-Player.jar "midiFile"
# Run
# Copyright (C) 2016 James Elwood Love III - All Rights Reserved
# Permission to copy and modify is granted under the Bumpy license
# created 20160101
###################################################################
build=20160101
##########################
jar="MIDI.jar"
##########################
## INFORM ################
clear
echo "\t $jar"
echo " build $build \t JimmyLandStudios.com"
echo " Play $1"
##########################
## JAR ###################
java -jar "$jar" "$1"
##########################
exit 0