В чем разница между args и argh и argv в Java?

Практикуя некоторые вопросы по хакерранку, некоторые из решений имели argh вместо args (который я использовал в основном). Кроме того, я узнал, что есть еще один такой аргумент, который можно передать в функцию main(), и это argv. Таким образом, всего существует три различных аргумента:

арг

Argh

ARGV

Не могли бы вы сказать мне разницу между всеми тремя и как и когда их использовать?

И вот код:

class Solution{
public static void main(String []argh){
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    for(int i = 0; i < n; i++){
        String name = in.next();
        int phone = in.nextInt();
        // Write code here
    }
    while(in.hasNext()){
        String s = in.next();
        // Write code here
    }
    in.close();
  }
}

Обратите внимание, что я не прошу решения вышеуказанного вопроса. Я уже решил это и сделал успешную подачу, но я хотел знать, какая разница, если добавить argh вместо args?

заранее спасибо!

1 ответ

Решение

Сигнатуры Java-функций проверяются на основе типов возвращаемых данных и аргументов, но никогда не проверяют имя аргументов. Это означает, что

public static void main(String... parameters) { /* [...] */ }

является действительным main функция.

Это также означает, что вам не нужно использовать те же имена аргументов, что и интерфейс при реализации его функций, или как класс, который вы расширяете при перегрузке его функций.

Другие вопросы по тегам