Kan*_*ngh 0 java string overloading
它是我不确定而不是问题的东西.这个代码我在测试中遇到过.我现在要把代码粘贴到这里.
static void count(String...obj){
System.out.println(obj.length);
}
public static void main(String str[]){
count(null,null,null);
count(null,null);
count(null);
}
Run Code Online (Sandbox Code Playgroud)
程序运行良好,输出为3 2,在最后一次计数调用中它抛出一个零点异常(显然已经足够了).顺便说一下,测试中的问题是什么.无论如何,我无法理解什么样的函数参数(String ... obj).请有人帮帮我吧.
它是一个varargs参数,它基本上允许您指定多个参数,并让编译器为您创建一个数组.
您在最后一行获得NPE的原因是编译器可以有效地选择:
count(new String[] { null })
Run Code Online (Sandbox Code Playgroud)
和
count((String[]) null)
Run Code Online (Sandbox Code Playgroud)
......而且它更喜欢后者.
您可以通过强制转换来强制它使用以前的转换null
:
count((String) null);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
122 次 |
最近记录: |