Java Reference
In-Depth Information
Listing 1.5 Generische Methode zum Austausch des Inhalts zweier GenericClass-Objekte
public class Exchange
{
public <T> void exchange(GenericClass<T> o1,
GenericClass<T> o2)
{
T content1 = o1.getContent();
T content2 = o2.getContent();
o1.setContent(content2);
o2.setContent(content1);
}
}
In diesem Fall reicht ein einziges Objekt aus, um die Inhalte für unterschiedliche Generic-
Class-Objekte zu realisieren:
GenericClass<String> hallo = new GenericClass<String>();
hallo.setContent("hallo");
GenericClass<String> welt = new GenericClass<String>();
welt.setContent("welt");
GenericClass<Integer> i1 = new GenericClass<Integer>();
i1.setContent(47);
GenericClass<Integer> i2 = new GenericClass<Integer>();
i2.setContent(11);
Exchange e = new Exchange();
e.exchange(hallo, welt);
e.exchange(i1, i2);
Hier kann das Objekt e sowohl zum Tauschen der Inhalte zweier GenericClass<String>- als
auch zweier GenericClass<Integer>-Objekte verwendet werden.
Übrigens könnte man im vorliegenden Fall, in dem keine Attribute in der Klasse Exchange
vorhanden sind, die Methode exchange static machen, wie Listing 1.6 zeigt.
Listing 1.6 Generische Static-Methode zum Austausch des Inhalts zweier
GenericClass-Objekte
public class Exchange
{
public static <T> void exchange(GenericClass<T> o1,
GenericClass<T> o2)
{
T content1 = o1.getContent();
T content2 = o2.getContent();
o1.setContent(content2);
o2.setContent(content1);
}
}
In diesem Fall ist gar kein Objekt nötig, um einen Tausch durchzuführen:
GenericClass<String> hallo = new GenericClass<String>();
hallo.setContent("hallo");
GenericClass<String> welt = new GenericClass<String>();
 
Search WWH ::




Custom Search