2016-08-09 6 views
2

Nur aus Neugier heraus, dass ich eine lokale Klasse innerhalb eines meiner Controllers Aktionen zu setzen versucht, zum Beispiel:Grails 2.4.2 - Lokale Klasse in Aktion des Controllers

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

jedoch Kompilierung immer versagt mir geben einen Fehler wie dies:

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

Haben Sie irgendwelche Ideen?

Antwort

1

Sie können nicht definieren Klassen innerhalb Methoden

Move it außerhalb der Methode

+0

Ich dachte, es möglich sein könnte, wie stark auf Java basiert und ich dieses hier gefunden, wo es eine Klasse innerhalb einer Methode: [Java - Lokale Klassen] (https://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html) Was ist der Unterschied? – gabriel

+0

Nein, groovy ist nicht Java. Lokale Klassen sind in Groovy nicht gültig ... Und um ehrlich zu sein, habe ich sie in Java seit 16 Jahren professioneller Java-Entwicklung nicht verwendet ... obwohl das natürlich ein Fehler von mir sein könnte –

+0

Ok, danke! Ich wechselte zu einer anonymen Klasse :) – gabriel

Verwandte Themen