Java - 检查参数是否为空或已设置?

时间:2013-06-25 03:07:25

标签: 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;

最终解决方案

if(args.length == 0){

不会

if(args[0].length() == 0){

2 个答案:

答案 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