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

问题描述 投票:1回答:2

我对Java还是很陌生,我正在尝试查看所设置的参数是否为空,如果是,则向其发送消息,然后终止脚本。但是,它似乎没有用,因为我将参数保留为空,并且我仍然只是不会得到我的消息,但是看起来它返回的是false。

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){
java arguments isset
2个回答
5
投票

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

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

需要

if(args.length == 0){

实际上,如果您检查args长度的第0个位置,则可能会得到数组超出范围的错误。


1
投票

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

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

#!/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 $?
© www.soinside.com 2019 - 2024. All rights reserved.