Home  >  Article  >  Java  >  How to get the class name in java

How to get the class name in java

WBOY
WBOYforward
2023-05-03 16:55:072337browse

If we want to get the currently running class name, how to get it?

In the Class class, there is the following method:

How to get the class name in java

For example, there is now a class Demo7.java

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

Run result:

How to get the class name in java

The above is directly calling getClass() on this object to get the Class object, and then calling getName () Get the running class name.

So if a class inherits a class, how to get the current class name and the parent class name

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();
    }
}

Above we used super to call a getClass() method, and then get the class name. What needs to be noted here is that super can only call non-static methods of the parent class. , and cannot be called in a static method, because super, like this, is based on object operations. Speaking of which, getClass() of the parent class is called here, so I want to get the class name of the parent class. Well, after running

How to get the class name in java

, I still can’t get the class name of the parent class. , then let’s take a look at the geClass() method. This method is in the Object object.

How to get the class name in java

It turns out that this method is final, that is to say, this method is inherited by other classes. Yes, but it cannot be overridden. Therefore, this.getClass and super.getClass ultimately call the getClass method in the Object class, and the definition of this method is to return the runtime class of Object, so the above will return its own class. name instead of the parent class name.

So how to get the name of the parent class?

Let’s go to the Class class to take a look and find the following method:

How to get the class name in java

The above means, Will return the parent class of the current calling class. After getting the parent class, we can still use getName() to get the name. The above code

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();
 
    }
}

Running results:

How to get the class name in java

In this way, we get the class name of the parent class

The above is the detailed content of How to get the class name in java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete