Я попытался запустить небольшую программу C# и java (используя VS и NetBeans не из командной строки) и напечатать значение args [0], но я получил IndexOutOfRangeException
.
Я знаю, что args
предназначен для передачи в параметрах командной строки, но все еще в основном методе в любом случае, Так как программа будет работать, если нет параметра args
, переданного ему?Кто передал «аргументы» основному методу?
ответ
Как работает программа, если на нее не передан параметр args? При создании программы создается новый массив и заполняется значениями из командной строки.
Если их нет (потому что вы не указали их в IDE) массив будет пустым (не равно нулю, по крайней мере, не в Java)
Yo избежать ваш IndexOutOfRangeException
вы будете иметь либо не использовать аргумент, либо назначить значение по умолчанию и проверить длину массива args.
Например (в Java)
public class YourClass {
public static void main(String [] args) {
String param = "someDefault";
// validate args.length
if(args.length > 0) { // if there is a parameter
param = args[0]; // use it
}
// continue with "param" already defined.
}
}
поэтому он будет пустым и не пустым, поэтому программа будет работать нормально ... спасибо! –
Java допускает пустые массивы; т.е.
String[] args = new String[0];
С index >= args.length
, исключение согласуется.
В этой теме, еще одно примечание: в отличие от программ C и т. Д. Arg 0 не является самой программой. Поэтому довольно часто бывает, что main(String[])
получает вызов с пустым массивом.
Если аргументов нет, массив будет пустым - если массив не был пройден, вместо этого у вас был бы NullReferenceException
.
В массиве args [] есть только элементы, если вы передаете их в командной строке.
java my.test.MyTest arg1 arg2
Это приведет к аргументам arg1 и arg2, которые передаются в массиве arg []. Если вы не передали никаких аргументов, массив arg [] равен length 0, поэтому доступ к любому индексу приведет к исключению.
В некоторых случаях вполне разумно не включать никаких аргументов при вызове командной строки exe. Параметр args
существует, чтобы вы могли сказать, были ли переданы или нет аргументы, и если да, то каковы они были.
- 1. pass Перейти к основному методу Аргументы
- 2. Исполнения по основному методу
- 3. Возвращаясь к основному методу?
- 4. Как передать аргументы методам класса и вернуть значения основному методу?
- 5. Дайте аргументы к основному
- 6. как передать аргумент основному методу в eclipse?
- 7. Как вернуться к основному методу?
- 8. Потоковые пути к основному методу
- 9. Передача параметра основному методу класса
- 10. Как передать аргументы основному методу Java, используя аргументы конфигурации конфигурации в Eclipse?
- 11. Аргументы к основному в C
- 12. execvp не передал аргументы вызываемой программе
- 13. Без имени передал аргументы, не включенные в объект «аргументы»
- 14. vb.net - обработка ошибок по основному методу или любому методу
- 15. Возврат к основному методу в java
- 16. Используйте сканер только по основному методу
- 17. Как добавить классы к основному методу
- 18. Выход из режима возврата к основному методу
- 19. Возвращение нескольких массивов к основному методу
- 20. копирование массивов от метода к основному методу
- 21. Как вернуть функциональность моему основному методу?
- 22. JFileChooser не возвращает имя файла основному методу
- 23. Как вернуть значение 2 размера основному методу?
- 24. Что касается проведения исследований по основному методу()
- 25. Использование метода и передачи значений основному методу
- 26. Python unittest основной метод, мешающий основному методу моего скрипта
- 27. как аргументы передаются методу codeigniter
- 28. Функция перехода к основному методу Args Cmd Prompt
- 29. доступа аргументы передаются методу ребенка
- 30. аргументы PHP перейти к методу
Он проверяет первую длину арг массива? – HoLyVieR