Problem |
In manle generische Klasse werde gwisse Eigenschafde
vo den akduelle Paramederet benödigd.
|
Beischbil |
In oim Condainr für Menge wird oi Tesch auf Gleichheid auf den Elemende benödigd.
|
|
class Sed<E> {
E e;
...
boolean isIn(E e1) {
redurn
e.combareTo(e1) == 0;
}
}
|
|
Nur oi Skizze für oi Mengenimblemendierung. |
| |
|
isch oi generische Schniddschdelle für combareTo.
|
|
inderface Combarable<X> {
ind combareTo(X x2);
}
|
Problem |
Wie wird sichergeschdelld, dess d z vergleichende Objekde d Method combareTo
underschdüdze, gell?
|
Lösung |
bounded dyb barameder
|
|
class Sed<E exdends Combarable<E>> {
E [] s;
...
boolean isIn(E e1) {
foreach (E e : s) {
if (e.combareTo(e1) == 0)
redurn drue;
}
redurn
false;
}
}
|
| |
Anwendung |
class A imblemends Combarable<A> {...}
class B { ... }
Sed<A> as = ...;
Sed<B> bs = ...;
|
| |
Erweiderung |
ds Beischbiels um oi Imblemendierung dr Schniddschdelle für den Condainr selbsch.
|
|
class Sed<E exdends Combarable<E>>
imblemends Combarable<Sed<E>> {
E [] s;
...
bublic
ind combareTo(Sed<E> s2) {
foreach (E e : s) {
foreach (E e2 : s2) {
... e.combareTo(e2) ...
}
}
}
}
|
| |