| 

.NET C# Java Javascript Exception

Groovy und Eclipse

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Groovy und Eclipse

Daniel87 - 27.10.2008 22:32
Hallo Leute!
Habe mich eben mal frisch angemeldet um ein paar Fragen zu stellen. Ich habe natürlich schon vorher selbst nach Antworten gesucht und auch auf den Großteil meiner Fragen eine Antwort gefunden, trotzdem habe ich noch ein paar offene Fragen und hoffe das ich hier meine verbleibenden Antworten finde werden.
Ich muss mich, im Rahmen einer Seminararbeit für die Uni, mit Groovy on Grails befassen und auch eine Beispielanwendung dazu schreiben.
Also erstes wollte ich mich mit der Programmiersprache Groovy auseinandersetzten. Habe dazu ein paar Tutorials gemacht. Alles soweit klar, solange ich keinen Klassenkopf benutze.
Das fand ich sowieso total interessant, wenn ich mit Eclipse eine neue Groovy Klasse erstelle erstellt er mir automatisch
/**
*
*/



/**
* @author Daniel
*
*/
public class GroovyTestZwei{



}

Wenn ich jetzt da reinschreibe gibt es als nur Fehler, bis ich die Klassendef. Wegstreiche. Ich habe soweit auch schon gelesen, dass Groovy auch ohne Klassendef auskommt, doch was ist, wenn ich von einer Klasse erben möchte oder ein Interface implementieren will. Das muss ja dann in die Klassendef nach oben rein?
Ich bin natürlich auch auf die idee gekommen meinen Text dan noch in eine mainmethode reinzuschreiben
Public static void main(String[] args){
myList = [1,2,3,4]
println myList
}
Das in der Mitte ist ja Groovy spezifischer Code, aber das müsste doch so gehen, oder darf ich nur Groovy Code verwenden, wenn ich keine Klassendef habe?
Habe auch bei euch im Wiki den Tipp gelesen doch mit dem konnte ich nichts anfangen da ich echt nicht weiß was ich wo wie machen soll
"Tipp
Ich habe beobachtet, daß Eclipse immer wieder Übersetzungsfehler im Editor anzeigt (als rote Merker) obwohl alles syntaktisch korrekt ist, da Klassen nicht gefunden werden und damit dann z.B. die Code-Vervollständigung von Groovy unterbleibt.
Dies kann behoben werden, indem einfach alle Pfade, die Klassen enthalten -- egal, ob Java oder Groovy --, in den Erstellungspfad (engl.: Build Path) aufgenommen werden.
Für Grails sind dies typischerweise alle Ordner grails-app/*. Bei Bedarf empfiehlt es sich ggf. auch die Pfade von Erweiterungen hinzuzunehmen. Diese liegen unter plugins/ und weisen das gleiche Namensmuster auf, wie ein reguläres Projekt..." (usw. steht ja bei euch im Wiki)
Und Sorry wenn vielleicht an einigen Stellen nicht alles ganz korrekt ist, ich kenne mich noch nicht so gut mit Groovy aus

Viel Danke
Daniel


Re: Groovy und Eclipse

Daniel87 - 28.10.2008 08:12
So damit ich sichergehe das ich das jetzt richtig verstanden habe:
Wenn meine Klasse so aussieht:
	myList = [1,2,3,4]
	println myList
Kein Fehler, alles funtzt.

Wenn sie so aussieht:
public class GroovyTestZwei{
myList = [1,2,3,4]
println myList 
}
Gibt die Fehlermeldung: "unexepted toker: myList @ line 2, column 1"
(Sollte das überhaupt so funktionieren?)

Wenn sie so aussieht:
public class GroovyTestZwei{
	public static void main(String[] args){
		myList = [1,2,3,4]
		println myList 
	}
}
Gibt die Fehlermeldung: "The name myList dosen't refer to declared variable or class. ..."
(Sollte das überhaupt so funktionieren? - Ja oder ?)

Was ist dem mit Satz für die Konfiguration (Tip) aus eurem Wiki?
"Dies kann behoben werden, indem einfach alle Pfade, die Klassen enthalten -- egal, ob Java oder Groovy --, in den Erstellungspfad (engl.: Build Path) aufgenommen werden.
Für Grails sind dies typischerweise alle Ordner grails-app/*."
Ich habe irgendwie keinen Plan wie ich das mache - könnte es vielleicht hierdran liegen?

Danke
Daniel


Re: Groovy und Eclipse

Daniel87 - 28.10.2008 09:44
VIELEN DANK, damit klappt es (fast)

Zwei Sachen sind mir hier noch aufgefallen die ich gerne noch wissen würde.
Eclipse meckert trotzdem noch rum, bei der Methode
printList() {
println mylist
}
bis ich dafür z.B. ein void oder static (ich weiß, das eine hat nichts mit dem anderen zu tun, kann man auch beide hinterinander aufschreiben ^^) davor gemacht habe oder ähnliches. (Wie ich eben gesehen habe geht auch def)
Sollte dies auch ohne gehen (wie du es geschrieben hast) oder muss man den Methodenkopf drinnen haben?

Darüber hinaus, sicherlich hast du es selbst nur schnell aufgeschrieben, doch müssten das dann nicht bei printList() {...} ein static davor sein und vor dem def auch? Zumindest geht es ohne nicht (sollte aber glaube ich so sein, den man kann ja nicht von einer dynamischen Methode auf eine statische zugreifen)

Nun noch meine letzte Frage, "def" kenne ich so nicht aus Java. Gab es das schon und wo ist der Unterschied zu den normalen Attributen (oder wie man die nennt), wie private, public usw.
Def kann man ja sowohl bei Variablen als auch bei Methoden schreiben…
Ist def private? Also ganz einfach ^^, was ist def genau?

ein weiteres Mal vielen Dank :)
Daniel


Re: Groovy und Eclipse

manfred - 28.10.2008 10:21
Mit "def" deklarierst du Variablen und ist nicht zu vergleichen mit "private" oder "public".
Variablen-Deklarationen sind in Groovy automatisch "public", wenn nicht explizit was da steht.
Java ist nicht dynamisch, d.h. Methoden und Variablen müssen einen Typ (z.B. String) haben. Groovy ist dynamisch und Variablen, Methoden müssen nicht zwingend einen Typ haben. In dem Fall benutzt man "def".
"def" bei einer Methode definiert also den Return-Typ. Dies kann dann jedes Objekt sein.
"def" bei einer Variablen deklariert die Variable mit keinen speziellen Typ.

In meiner Beispiel-Klasse habe ich glaube ich wirklich das "void" oder "def" vergessen. Eher wohl "void" da ja kein Wert zurück gegeben wird von der Methode.
Ein "static" ist hier weder bei den Variablen, noch bei der Methode angebracht.
"static" sagt aus, dass von dieser Variable nur ein Mal speicher allokiert wird, selbst, wenn sie innerhalb einer Klassen-Definition steht.
"static" Methoden sind aus einem statischen Kontext aufrufbar, d.h. ohne von der Klasse, in der sie deklariert ist ein Objekt instantiiert zu haben.

Wenn Dir das nicht ganz klar ist, solltest Du Dir einschlägige Literatur zum Thema Objekt-Orientierung anschauen.


Beste Grüsse,
Manfred


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Groovy und Eclipse" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.