Hi
Ich bräuchte eine Möglichkeit, einer Klasse beliebig viele Typen mitzugeben. Die sollten leicht erweiterbar sein, aber (trotzdem) zur Compilezeit überprüft werden können. Sinngemäß also sowas wie
Eben mal mit einem Type, oder mal mit 5 Typen...
In meiner schier unendlichen Kreativität (sprich: Verzweiflung :? ) bin ich da bisher nur auf sowas gekommen wie
Rekursiv getypte Generics Yo. Das funktioniert zwar, aber ... :roll: ja.... Hab ich gerade ein Brett vorm Kopf, oder ist das wirklich nicht so einfach? Hat jemand eine Idee dazu?
bye
Ich bräuchte eine Möglichkeit, einer Klasse beliebig viele Typen mitzugeben. Die sollten leicht erweiterbar sein, aber (trotzdem) zur Compilezeit überprüft werden können. Sinngemäß also sowas wie
Code:
class Foo<Type1, Type2 ... TypeN>
{
Type1 getType1() { ... }
Type2 getType2() { ... }
...
TypeN getTypeN() { ... }
}
In meiner schier unendlichen Kreativität (sprich: Verzweiflung :? ) bin ich da bisher nur auf sowas gekommen wie
Code:
// This actually works, but ... well...
interface TypeSequence<Type, TypeSequenceType extends TypeSequence>
{
Type getType();
TypeSequenceType getSubTypes();
}
class TypeSequence1 implements TypeSequence<String, TypeSequence<Integer, TypeSequence<Boolean, TypeSequence>>>
{
public String getType() { return "foo"; }
public TypeSequence<Integer, TypeSequence<Boolean, TypeSequence>> getSubTypes() { return new TypeSequence2(); }
}
class TypeSequence2 implements TypeSequence<Integer, TypeSequence<Boolean, TypeSequence>>
{
public Integer getType() { return new Integer(123); }
public TypeSequence<Boolean, TypeSequence> getSubTypes() { return new TypeSequence3(); }
}
class TypeSequence3 implements TypeSequence<Boolean, TypeSequence>
{
public Boolean getType() { return new Boolean(true); }
public TypeSequence<Type, TypeSequence> getSubTypes() { return null; }
}
bye