我有以下代码
String[] args = {"a", "b", "c"};
method(args);
private void method(String[] args){
return args;
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能没有错误地执行以下操作?
method({"a", "b", "c"});
Run Code Online (Sandbox Code Playgroud)
这段代码只是为了证明这一点,而不是我使用的实际方法.我想做第二种方法来清理我的代码,并且当我只使用它们一次传递给我的方法时,避免声明十几个不同的数组.
问题的核心是将字符串数组作为方法参数传递的最有效方法是什么.
bas*_*bas 16
尝试
method(new String[]{ "a", "b", "c"});
Run Code Online (Sandbox Code Playgroud)
这样系统就知道它是一个新的字符串数组.
java不像php;)
我怀疑你想使用varargs.您甚至不需要创建一个数组来发送可变长度参数.
String[] strings = method("a", "b", "c");
private String[] method(String... args){
return args;
}
Run Code Online (Sandbox Code Playgroud)
要么
String[] strings = array("a", "b", "c");
private <T> T[] array(T... args){
return args;
}
Run Code Online (Sandbox Code Playgroud)
或者如果你想进一步浓缩
String[] strings = array("a, b, c");
private String[] array(String args){
return args.split(", ?");
}
Run Code Online (Sandbox Code Playgroud)
如果您使用:
method({ "a", "b", "c"});
Run Code Online (Sandbox Code Playgroud)
然后java不知道你是否想要一个String
或多个数组Object
.你可以明确地告诉java它是什么样的数组:
method(new String[] { "a", "b", "c"});
Run Code Online (Sandbox Code Playgroud)
这样Java就可以说你的意思是一个数组String
.
归档时间: |
|
查看次数: |
21322 次 |
最近记录: |