Eclipse - Codeschnipsel speichern

Kerwin

Erfahrenes Mitglied
Hallo

Ich bin seit eh und je ein begeisteter Eclipse-Nutzer. Bisher habe ich Eclipse immer nur für relativ kleine Projekte benutzt (UNI-Aufgaben und diverse "kleinere" Aufträge). Jetzt jedoch habe ich ein doch für mich relativ großes Projekt am laufen.
In diesem Projekt kommt es dazu, dass ich gelegentlich den gleichen Code verwenden muss. Also ich Klasse A schreibe ich eine Zeile code rein, die auch unbedingt in Klasse B rein muss sowie C, D, E etc.

Ich kenne PHP-Editoren die eine Möglichkeit anbieten, solche kurzen Codeschnipsel zu speichern und bei Bedarf wieder abzurufen.

Gibt es in Eclipse auch so etwas?
 
Nein und Code soll man ja möglichst auch nicht kopieren.

Wenn du den Code an mehrere Stellen brauchst, so mach dir eine Klasse namens Util und pack den Code dort in eine geeignete (statische) Methode die du dann von den anderen Klassen aufrufen kannst.

Wenn du den Code in mehreren Projekt benötigst machst du ein eigenes Jar von was du dann entsprechend einbinden kannst.
 
Ich hab da mal ein Beispiel Codestück, wie würdest du daraus eine statische Klasse machen?

Code:
			AsyncCallback callback = new AsyncCallback() {
			    public void onSuccess(Object result) {
			    	Integer saved = (Integer) result;
			    	
			    	if(saved.intValue()==1){
			    		MessageBox.alert(CONSTANTS.OK(), CONSTANTS.GBOK());
			    		title.setText("");
			    		text.setText("");
			    		refreshList();
			    	}else{
			    		MessageBox.alert(CONSTANTS.error(), CONSTANTS.GBErrorAlles());
			    	}
			    }

			    public void onFailure(Throwable caught) {
			      Window.alert("Login Fehlgeschlagen");
			    }
		   };

Es ist ein Codestück, das ich in einem GWT Projekt doch schon so einige Male drinn stehen habe, bzw. das Konstrukt. Das ding ist ein Callback eines RPC Calls. Mein Problem ist, dass public void onSuccess(Object result) { } jedes Mal variiert. Wie könnte ich das in eine Klasse packen?
 
Nein und Code soll man ja möglichst auch nicht kopieren.

Wenn du den Code an mehrere Stellen brauchst, so mach dir eine Klasse namens Util und pack den Code dort in eine geeignete (statische) Methode die du dann von den anderen Klassen aufrufen kannst.

Wenn du den Code in mehreren Projekt benötigst machst du ein eigenes Jar von was du dann entsprechend einbinden kannst.

Stimme ich dir natürlich voll und ganz zu und versuche auch das immer so umzusetzen.
Was mir vorgeschwebt hat ist:

Ich habe eine Klasse A, und die soll Klasse B instanzieren. Dabei wird IMMER ein Objekt der Klasse A an Klasse B übergeben (Klasse A erbt von einer Abstrakten Klasse). Klasse B soll natürlich auch auf die gleiche Abstrakte Klasse zugriff erhalten sowie auch auf die gleichen Werte die in Klasse A oder Klasse XYZ generiert wurden. Diese Abstracte Klasse enthält quasi viele dynamische Werte, auf die jede Klasse zugreifen kann/soll/muss.

Code:
// pseudoCode

AbstractClass{
  private int zahl;
  public void setInt(int i){
    zahl = i;
  }
  public int getZahl(){
    return zahl;
  }
}

ClassA extends AstractClass{
  
  setInt(78);

  ClassB b = new ClassB(this);
}

ClassB{
  AbstractClass aobject;
  ClassB(AbstractClass aclass){
    aobject = aclass;
  }

  aobject.getZahl();
}


Was ich also eigentlich haben wollen würde, dass ich in Klasse B den Construktor der die Werte empfängt einfach nur noch per Knöpfchen einfügen brauche und die Referenzen auf mein Object für Klasse B setzt.



Oder ein weiteres Beispiel wäre GridBagLayout, wo ich einen kompletten Block immer erzeugen kann. Das kann man halt auch nicht auslagern, da es sehr Klassenspezifisch ist


Oder das ich meine Klassen eine gewisse Struktur verpassen will (nein, keine öffentliche Schnittstellen):
Jede Klasse die eine grafische Ausgabe hat soll z.B. die methoden "initComponents", "initGUI", ... haben (alle natürlich private). Es wäre halt toll, wenn ich nen knopf klickere, und die Methoden sind dann gleich in meiner Klasse drin
 
Zuletzt bearbeitet:
Mein Problem ist, dass public void onSuccess(Object result) { } jedes Mal variiert. Wie könnte ich das in eine Klasse packen?

Gar nicht. Wenn onSuccess jedes mal variiert handelt es sich ja nicht um kopierten Code. Alles was außen drum ist, ist ja eine notwendigkeit und keine Funktionalität. Die Funktionalität ist im onSuccess.

@Kerwin: Mach mal die Preferences in eclipse auf. Oben links gibt es ein Suchfeld. Gibt dort mal template ein. Dann findest du Templates die man auch selbst definieren kann. Könntest dir also einen Shortcut anlegen um das ganze umzusetzen (fiel mir jetzt erst wieder ein).

Ansonsten gibt es aber auch im Menü unter Source - Generatre Constructor using Fields etc, die einem das Erstellen von Konstruktoren auch schon vereinfachen.
 
Zurück