
Envoy� par
austin P.
et puis si on y tiens on peut encore s'en sortir avec des generics
Mouais...
C'est une solution mais elle a encore plus de limite je trouve :
On connait le type de T mais l� on n'est pas s�r que cela correspond � this, alors que dans la proposition cela pourrait �tre v�rifi� par le compilateur.
Je veux dire par l� que j'attend de cette proposition qu'un code comme celui-ci g�n�re une erreur :
1 2 3 4 5 6 7 8 9 10
|
public MaClasse {
public This doSomething() {
// ...
return new MaClasse(); // ERREUR
}
} |
car la seule valeur de retour doit �tre this.
Dans ton exemple avec les Generics cela n'est pas garantit et le sens est donc un tout petit peu diff�rent...
De plus cela alourdit le code si on utilise directement Buffer :
Buffer<Buffer> buffer = new Buffer<Buffer>();
Et le probl�me se retrouve �galement dans la classe ByteBuffer car si on veut toujours permettre cela aux classes filles il faudrait faire ceci :
1 2 3
| class ByteBuffer<T extends ByteBuffer> extends Buffer<T> {
ByteBuffer put(int data) {return null; }
} |
Et ainsi de suite...
a++
Partager