2016-05-24 5 views
0

Ich habe eine Klasse namens NewsDAO, die die abstrakte Klasse AbstractDAO erweitert und ihr die Klasse News als Parameter übergibt.Wie kann ich die Klasse kennen lernen, die als Paraher an die erweiterte abstrakte Klasse übergeben wurde?

public class NewsDAO extends AbstractDAO<News> { 
} 

Was ich brauche, ist eine Methode, zu wissen, aus allen Klassen ***DAO, die Art der Klasse, die als paramether zu AbstractDAO weitergegeben genannt zu starten.

Ich kämpfte eine Weile mit ihm, aber ich fand den Weg nicht.

Danke

+0

Ich kann sagen, Reflexion kann das tun, aber ich bin mir nicht sicher, können Sie alle Ihre Klassencode –

Antwort

1

Sie können den vollständigen Namen der Klasse erhalten Sie auf diese Weise erweitern:

String fullExtendedClassName = this.getClass().getGenericSuperclass() 
      .toString(); 

Dann müssen Sie nur noch Ihre String-Format und die Informationen zwischen ‚<‘ bekommen und '>'

String extendedClassName = fullExtendedClassName.substring(fullExtendedClassName. 
indexOf("<") + 1, fullExtendedClassName.indexOf(">")); 

Ich hoffe, es hilft Ihnen.

+1

schreiben getActualTypeArguments ist Ihr Freund, nein? –

Verwandte Themen