1

我对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){
4

2 回答 2

5

您的问题是您检查 args 长度的第 0 个位置。

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

需要是

if(args.length == 0){

事实上,如果您检查 args 长度的第 0 个位置,您可能会得到一个数组越界错误。

于 2013-06-25T03:14:51.817 回答
1

考虑一下:(args.length > 0) && (args[0].equals("") == true)

从具有空“$1” jim@U10netbook:~/workspace/MIDI$ ./Run的Shell 脚本执行时发生

#!/bin/sh
#
# @(#)$Id MIDI filename.mid $
#
# 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.xyz"
echo    "  Play $1"
##########################
## JAR ###################
java -jar "$jar" "$1"
##########################
exit $?
于 2016-01-01T21:44:19.353 回答