paulo1911 27 de jun. de 2011
Olá elisangela tente isso veja:
public class Classe & lt ; E extends Storable & gt ; {
private static Classe & lt ; ? extends Storable & gt ; classe ;
public static & lt ; E extends Storeable & gt ; Classe & lt ; ? extends Storeable & gt ; openConnection ( Class & lt ; ? extends Storeable & gt ; classe ) throws ConnectionException {
if ( classe == null ) {
classe = new Classe & lt ; E & gt ;( clazz );
}
return classe ;
}
}
Fallow
WellingtonRamos 28 de jun. de 2011
paulo1911:
Olá elisangela tente isso veja:
public class Classe & lt ; E extends Storable & gt ; {
private static Classe & lt ; ? extends Storable & gt ; classe ;
public static & lt ; E extends Storeable & gt ; Classe & lt ; ? extends Storeable & gt ; openConnection ( Class & lt ; ? extends Storeable & gt ; classe ) throws ConnectionException {
if ( classe == null ) {
classe = new Classe & lt ; E & gt ;( clazz );
}
return classe ;
}
}
Fallow
Desculpe, mas não entendi tua alteração. Você renomeou o parâmetro clazz para classe. A única coisa que isso faz é pular o teste e retornar o próprio parâmetro passado.
Com um detalhe importante, você está passando como parâmetro um objeto do tipo Class e está retornando um objeto do tipo Class
e que creio dar erro de cast.
Fiz um teste rápido aqui, adaptando o código faltante ;)
O que notei: Em alguns pontos você estava usando Storeable e em outros, Storable.
public class Classe & lt ; E extends Storeable & gt ; {
private static Classe & lt ; ? extends Storeable & gt ; classe ;
private Class & lt ; ? extends Storeable & gt ; clazz ;
public Classe ( Class & lt ; ? extends Storeable & gt ; clazz ) {
this . clazz = clazz ;
}
@Override
public String toString () {
Storeable instance = null ;
try {
instance = this . clazz . newInstance ();
} catch ( Exception e ) {
e . printStackTrace ();
}
return instance . toString ();
}
public static & lt ; E extends Storeable & gt ; Classe & lt ; ? extends Storeable & gt ; openConnection ( Class & lt ; ? extends Storeable & gt ; clazz )
throws ConnectionException {
if ( classe == null ) {
classe = new Classe & lt ; E & gt ;( clazz );
}
return classe ;
}
public static void main ( String [] args ) {
System . out . println ( & quot ; TESTE & quot ;);
try {
Classe & lt ; ? extends Storeable & gt ; result = openConnection ( Teste . class );
System . out . println ( result );
} catch ( ConnectionException e ) {
e . printStackTrace ();
}
}
}
class Storeable {}
class ConnectionException extends Exception {}
class Teste extends Storeable {
@Override
public String toString () {
return & quot ; Hello world & quot ;;
}
}