2016-08-09 2 views
2

Просто из любопытства я попытался поместить локальный класс в одном из действий моего контроллера, например:Grails 2.4.2 - Локальный класс в действии контроллера

def index() { 
    class TestClass { 
     TestClass() { 
      // do something 
     } 
     doSomething() { ... } 
    } 
    TestClass test = new TestClass() 
    test.doSomething() 
    respond anything 
} 

Однако компиляция всегда терпит неудачу, дает мне ошибку, как это:

Error Compilation error: startup failed: class TestClass ... 
             ^

У вас есть идеи?

ответ

1

Вы не можете определить классы внутри методов

переместить его за пределы метода

+0

я думал, что это может быть возможно, как заводной основан на Java, и я нашел это здесь, где есть класс внутри метода: [Java - локальные классы] (https://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html) В чем разница? – gabriel

+0

Нет, groovy - это не java. Локальные классы недействительны в Groovy ... И, честно говоря, я не использовал их в Java за 16 лет профессиональной разработки Java ... хотя, конечно, это может быть неудача меня –

+0

Хорошо, спасибо! Я переключился на использование анонимного класса :) – gabriel

Смежные вопросы