簡體   English   中英

這種在 Java 中使用命令行參數的方式有什么問題?

[英]What is wrong with this way of using command line arguments in Java?

我的程序是這樣的:

public class Main {
    public static void main(String[] args) {
        int a = Integer.parseInt(args[0]);
        int b = Integer.parseInt(args[1]);
        int c = a + b;
        System.out.print("Sum is" + a);
    }
}

我試圖給出兩個整數作為命令行參數,然后計算兩者的總和。 我讀到這是 Java 接收這些參數的方式,但出現錯誤:

Exception in main thread java.lang.ArrayIndexOutofBoundsException

這是為什么? 為什么我的數組args越界?

您的命令行需要類似於

java Main 4 7

然后,在您的代碼中, args將包含兩個元素,即47

如果您的命令行是

java Main

然后args包含零個元素,因此當您訪問args[0]您會得到ArrayIndexOutOfBoundsException因為args包含任何元素,因此您無法訪問第一個元素,因為它不存在。

請注意,首先檢查args包含多少個元素通常是一個好主意,因為正如您所見,在沒有所需數量的參數的情況下啟動 Java 程序非常容易。

args.length

將返回args的元素數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM