Groovy错误地使用封闭类的构造函数?

时间:2017-11-29 15:25:46

标签: groovy constructor inner-classes

假设:

static class Question {
    // stuff
    List<Value> values

    static class Value {
        // stuff
    }

当我跑步时:

Question question = new Question()
question.id = "whatever"

if (it == QuestionType.SELECT || it == QuestionType.MULTICHOICE) {
    question.values = [new Question.Value(), new Question.Value()]

    for (Question.Value v : question.values) {
        // stuff
    }

question.values包含一系列Question对象而非Value。

Intellij没有给我任何错误或警告。我尝试评估&#34;新问题。值()&#34;在调试期间,它正确构造了一个Value对象。

但是,如果我使用静态导入:

import static <path>.Question.*

从而将if内容转换为:

question.values = [new Value(), new Value()]

for (Value v : question.values) {
    // stuff
}

然后我正确地得到了一个Value对象数组!

对我来说没有任何意义......请有人开导我吗?

修改:Intellij pics Intellij pics

0 个答案:

没有答案