java - 在构造函数中使用数组常量时出现编译器错误

标签 java arrays compiler-errors

public class Sonnet29 implements Poem {
    private String[] poem;
    public Sonnet29() {
        poem = { "foo", "bar" , "baz"};
    }
    @Override
    public void recite() {
      //...
    }
}

poem = { "foo", "bar", "baz"}; 行给出编译错误。

不允许这样做的任何具体原因? 如何用数组常量初始化 String 数组?

编辑:谢谢大家的回答。现在我很清楚什么是允许的,什么是不允许的。 但是我能问你为什么这是不允许的吗?

String[] pets;
pets = {"cat", "dog"};

谷歌搜索了一下,我找到了 link ,在哪里,它被告知像这样的编码会使编译器模棱两可 - 宠物应该是字符串数组还是对象数组。但是从声明中可以很好的判断出它是一个String数组,对吧???

最佳答案

这将满足您的需求:

public Sonnet29() {
    poem = new String[] { "foo", "bar", "baz" };
}

只有在创建数组的新实例时才允许初始化列表。

关于java - 在构造函数中使用数组常量时出现编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3078441/

相关文章:

java - 如何从有序列表中选择随机起始位置?

php - 使用 php 将对象存储在数组中

javascript - 如何向现有对象添加原型(prototype)属性

haskell - 在输入 `='上解析错误?

java - instanceof 与泛型集合

java - 从 XML Schema 数据类型转换为 Java int

c - 在 C 中操作字符串数组

iOS:在 NSUserDefaults 中保存 NSMutableArray 给我一个错误: 'Attempt to insert non-property list object'?

c++ - 错误构建 Dlib Visual Studio 2015

java - 自定义条码条目中缺少条码高度