【问题标题】:Get Concrete Class name from Abstract Class从抽象类中获取具体类名
【发布时间】:2011-08-01 16:52:44
【问题描述】:

在 Java 中,我可以在抽象类中获取扩展它的具体类的实例吗?

【问题讨论】:

    标签: java abstract-class


    【解决方案1】:

    是的,您可以通过致电this.getClass() 来完成此操作。这将为您提供 Class 运行时类型 this 的实例。

    如果你只想要类名,你可以使用this.getClass().getName()

    最后还有this.getClass().getSimpleName()this.getClass().getCanonicalName()。我一直使用前者将可读的类名打印到日志文件等。

    【讨论】:

    • 这里是您的示例:java.text.NumberFormat format = java.text.NumberFormat.getInstance(); System.out.println(format.getClass()); 抱歉,格式无法正常工作... @Peter:换行有一些问题。发布得太早了...
    【解决方案2】:

    Thread.currentThread().getStackTrace()[2].getClassName()

    【讨论】:

    • 展开堆栈效率极低
    猜你喜欢
    • 2012-05-15
    • 1970-01-01
    • 2012-09-25
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 2014-09-11
    • 1970-01-01
    相关资源
    最近更新 更多