2013-06-25 57 views
1

我对Java很陌生,我试图看看被设置的参数是否为空,如果是,则向它们发送消息,然后杀死脚本。虽然它看起来并没有工作,因为我将参数留空,而且我仍然只是不会收到我的消息,但它似乎返回false。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

你能否提供你如何调用onCommand()方法?谢谢。 –

+0

@JavaDevil它与Bukkit(一个Minecraft插件API) –

回答

5

你的问题是你的检查ARGS长度的第0位置。

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

必须

if(args.length == 0){ 

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

+0

一起使用if(args.length == 0){是我的最终答案,谢谢你一堆! –

+0

@Necro。你应该接受答案然后=)(点击勾号) – earcam

0

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

恰巧从一个shell脚本,有一个空的 “$ 1” 吉姆@ U10netbook时执行:〜/工作区/ 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