我不明白这个方法怎么会有长度?方法1().长度。按照同样的逻辑我们可以写 main().length
public class Solution {
public static void main(String[] args) {
int stackTraceLength = method1().length;
System.out.print(stackTraceLength);
System.out.print(main().length);
}
public static StackTraceElement[] method1() {
return Thread.currentThread().getStackTrace();
}
}
该方法没有长度属性。您调用的方法返回
StackTraceElement[]
,它是一个数组,并且数组具有 length
属性。换句话说,您调用方法 method1()
,它返回一个数组,然后在该数组上调用 length
。
这与您的代码相同:
StackTraceElement[] elements = method1();
int stackTraceLength = elements.length;
但只是没有中间
elements
变量(也称为 chaining)。
您无法拨打电话
main().length
有两个原因。
main()
方法,它有 main(String[])
方法,所以没有可以调用的方法main(new String[0]).length
的内容,那么这是行不通的,因为 main(String[])
的返回类型为 void
,这意味着没有返回任何内容,因此没有返回值可以调用 length
。