温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java如何获取类名

发布时间:2022-07-19 09:24:04 来源:亿速云 阅读:162 作者:iii 栏目:开发技术

本篇内容主要讲解“java如何获取类名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java如何获取类名”吧!

如果我们要获取当前运行的类名,怎么来获取?

在Class类中,有如下一个方法:

java如何获取类名

比如现在有一个类Demo7.java

package pxx.test1;
 
public class Demo7 {
    public static void main(String[] args) {
        Demo7 demo7 = new Demo7();
        System.out.println(demo7.getClass().getName());
    }
}

运行结果:

java如何获取类名

上面就是直接这个对象调用了getClass()得到了Class对象,然后调用getName()得到运行类名。

那么假如一个类继承了一个类,又怎么获取当前类名还有父类名呢

Demo8.java

package pxx.test1;
 
public class Demo8 {
    int num;
    String name;
    public Demo8(){};
}

Demo9.java

package pxx.test1;
 
public class Demo9 extends Demo8 {
    public void test() {
        System.out.println(super.getClass().getName());
    }
    public static void main(String[] args) {
        new Demo9().test();
    }
}

上面我们就用super调用了一个getClass()方法,然后又来获取类名,这里需要注意的是super只能调用父类的非静态方法,并且不能在static方法中调用,因为super与this一样,是基于对象操作的。说回来,这里调用父类的getClass(),因此想来得到父类的类名,好了,运行一下

java如何获取类名

还是拿不到父类的类名 ,那我们去看一下这个geClass()方法,这个方法在Object对象里面

java如何获取类名

 原来这个方法是一个final,也就是说,这个方法被其他类继承可以,但是不能被重写,因此,this.getClass与super.getClass最终调用的都是Object类中的getClass方法,而这个方法的定义是返回Object的运行时类,所以,上面会返回自己的类名而不是父类名。

那么怎么获取父类的名字呢?

我们去到Class类里面去看一下,发现有下面这个方法:

java如何获取类名

上面这个意思也就是说,会返回这个当前调用类的父类,拿到父类之后我们依然可以用getName()来获取名字,上代码

package pxx.test1;
public class Demo9 extends Demo8 {
    public void test() {
        System.out.println(super.getClass().getSuperclass().getName());
    }
    public static void main(String[] args) {
        new Demo9().test();
 
    }
}

 运行结果:

java如何获取类名

这样就拿到了父类的类名 

到此,相信大家对“java如何获取类名”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI