首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谁把"args“传递给主要的方法?

谁把"args“传递给主要的方法?
EN

Stack Overflow用户
提问于 2010-06-22 19:35:45
回答 5查看 708关注 0票数 0

我尝试运行一个小的c#和java程序(使用VS和NetBeans,而不是从命令行),并打印args的值,但是我得到了一个IndexOutOfRangeException

我知道args是用来传递命令行参数的,但是在主方法中它仍然是,那么如果没有传递给它的args参数,那么程序将如何运行?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-06-22 19:42:14

如果没有传递给

的args参数,那么程序将如何运行呢?在创建程序时,将分配一个新的数组,并填充来自命令行的值。

如果没有(因为您没有在IDE中指定它们),则数组将为空(至少在Java中不为空)。

不要让你的IndexOutOfRangeException,你必须要么不用参数,要么分配一个默认值,并验证args数组长度。

例如(用Java )

代码语言:javascript
运行
复制
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.

    }
 }
票数 5
EN

Stack Overflow用户

发布于 2010-06-22 19:38:54

Java允许空数组;即

代码语言:javascript
运行
复制
String[] args = new String[0];

由于index >= args.length,异常是一致的。

在这个特定的主题上,还有一个额外的注意事项:与C程序等不同,arg 0不是程序本身。因此,使用空数组调用main(String[])是很常见的。

票数 3
EN

Stack Overflow用户

发布于 2010-06-22 19:39:31

如果没有参数,数组将为空--如果没有传递数组,您将得到一个NullReferenceException

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3096481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档