This question already has answers here:
How to get the generic type at runtime?

(4个答案)


4年前关闭。




我有一个名为NewsDAO的类,该类扩展了抽象类AbstractDAO并将其传递给类News作为参数。

public class NewsDAO extends AbstractDAO<News> {
}


我需要的是一种从所有称为***DAO的类开始知道的方法,该类的类型作为对位传递给AbstractDAO

我挣扎了一段时间,但没有找到路。

谢谢

最佳答案

您可以通过以下方式获取要扩展的类的全名:

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


然后,您只需要格式化字符串并获取''之间的信息

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


希望对您有帮助。

关于java - 如何知道作为parather传递给扩展抽象类的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37411083/

10-14 18:27