Java中为何存在method().length写法?main().length是否可行?
问题解答
首先得明确:不是方法本身有length属性,是方法调用后返回的结果有length属性。
先看
method1().length的逻辑:method1方法的返回类型是StackTraceElement[],也就是一个数组。Java里所有数组都自带length属性,用来表示数组的元素个数。所以method1()执行后会返回一个数组对象,你访问的是这个数组的length,完全合法。再看
main().length的问题:main方法的返回类型是void,这表示这个方法执行后没有任何返回值。你试图对一个没有返回值的表达式(main())访问length属性,这在Java里是编译错误——因为void类型根本不存在任何成员可以访问。
另外注意代码里的拼写错误:lenght应该写成length,不过这是小问题,核心还是返回值类型的差异。
内容的提问来源于stack exchange,提问作者ra1n89
相关产品推荐
相关产品推荐

