我经常看到数组被初始化如下:
String[] array = new String[] { "foo", "bar", "baz" };
Run Code Online (Sandbox Code Playgroud)
但阅读语言基础 - 数组表明,短语法不需要显式实例化构造函数:
或者,您可以使用快捷语法来创建和初始化数组:
Run Code Online (Sandbox Code Playgroud)int[] anArray = { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 };
所以,假设这两种初始化方法:
String[] array = new String[] { "foo", "bar", "baz" };
String[] array2 = { "foo", "bar", "baz" };
Run Code Online (Sandbox Code Playgroud)
这些之间有什么区别吗?双方似乎工作一样,在这种情况下我应该承担的第二个隐式调用的new String[],第一个就是一个更详细的方式,还是有更多的它在幕后?
从Java开始很抱歉,如果这对于一个问题太愚蠢了,但我在网上找不到任何相关信息.
考虑:
public proj 3 {
static string [][]Item;
public static void main(String [] args){
Item[][] = {
{"BH," , "Backhoe," , "200.00"},
{"ER," , "Electric Rake," , "10.00"},
{"EL," , "Electric Lawnmower," , "15.00"},
{"TR," , "Trencher" , "35.00"},
{"MU," , "Mulcher," , "20.00"},
{"TS," , "Tree Sprayer," , "22.00"},
{"CP," , "Cider Press," , "30.00"},
{"PR," , "Pruner," , "12.00"},
{"GE," , "Gas Edger," , "20.00"},
{"RO," , "Roller," , "8.00"},
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做,所以我可以用不同的方法调用数组?
我有以下代码
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)
这段代码只是为了证明这一点,而不是我使用的实际方法.我想做第二种方法来清理我的代码,并且当我只使用它们一次传递给我的方法时,避免声明十几个不同的数组.
问题的核心是将字符串数组作为方法参数传递的最有效方法是什么.
我试图初始化一个字符串数组,如下所示,但它有一个错误.
public class Account{
private String[] account;
public Account()
{
account = {"A", "B", "C"};
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么它一直在创建错误?