A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© rxtm 中级黑马   /  2015-7-23 12:20  /  218 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如说现在两个类有继承关系, People类中有一个静态方法getClassName(),可以获取到当前的类名。Teacher类继承自People类。现在在Test方法里,调用Teacher.getClassName(),得到的类名却是People的类名,当然这也很好理解为什么,我就是想问问有没有什么办法可以使Teacher.getClassName()得到的是Teacher的类名。只能在People的getClassName()里面改代码,不可以动Teacher这个类。

以下附上简单代码。

Java code

package com.test;

public class People {

    public static String getClassName() {
        return new Object() {
            private String getName() {
                String className = getClass().getName();
                return className.substring(0, className.indexOf("$"));
            }
        }.getName();
    }

}

Java code
package com.test;

public class Teacher extends People{
}

Java code

import com.test.Teacher;

public class Test {
    public static void main(String[] args) throws Exception {
        System.out.println(Teacher.getClassName());
    }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马