Okay, das ist mein erster Beitrag hier so mit mir zu tragen .. Ich arbeite an einem kleinen Nebenprojekt über genetische Programmierung und ich verwende Generika.Erstellen von Objekt des generischen Typs
Dies sind kleine Code-Schnipsel:
public class BinaryGenome<C extends BinaryEncodeable<C>> {
public BinaryGenome(C encodable){
setGenome(encodable.encode());
setSpecification(encodable);
}
public BinaryGenome(BitSet encoding) {
setGenome(encoding);
//What comes here???
}
}
public interface BinaryEncodeable<C extends BinaryEncodeable<C>> {
public BitSet encode();
public C decode(BitSet encoding);
}
Die BinaryGenome stellt ein Genom, enthält es das Objekt und die Bit-Darstellung darstellt. Ich kann den ersten Konstruktor verwenden, aber ich habe Probleme mit dem zweiten. Ist es möglich, ein Objekt C im zweiten Konstruktor aus der Codierung zu erstellen, vorausgesetzt, dass jede Klasse, die BinaryEncodable implementiert, über eine Decodiermethode verfügt.
Ich weiß, "New C()" funktioniert nicht wegen der Typfehler, aber gibt es eine Art von Fabrik, die ich verwenden kann?
In Ordnung, ich denke, ich werde mit dem Lieferanten gehen, da der zweite Konstruktor von einem anderen BinaryGenome-Objekt aufgerufen wird, das wiederum nicht weiß, welche statische Methode aufgerufen werden soll. –