当前位置:首页 » 编程语言 » java获取类名

java获取类名

发布时间: 2022-10-08 17:45:16

java 父类如何在运行期动态获取子类类名

给你写了3个类:

A类:

packagecn.test;
publicclassA{
publicvoidtest(){
System.out.println(this.getClass());
System.out.println(this.getClass().getSimpleName());
System.out.println(this.getClass().getName());
}
}

B类:

packagecn.test;
publicclassBextendsA{

}

Test类:

packagecn.test;
publicclassTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
Bb=newB();
b.test();
}
}

结果:

class cn.test.B
B
cn.test.B
你要知道,在继承关系中,不管父类还是子类,这些类里面的this都代表了最终new出来时的那个类型的实例对象,所以在父类中你可以中this获取到子类的信息!

不止一层继承关系时,你可以根据下面:

A类:

packagecn.test;
publicclassA{
publicvoidtest(){
System.out.println(this.getClass());
System.out.println(this.getClass().getSimpleName());
System.out.println(this.getClass().getName());
System.out.println(this.getClass().getSuperclass());
System.out.println(this.getClass().getSuperclass().getSimpleName());
System.out.println(this.getClass().getSuperclass().getName());
}
}

B类:

packagecn.test;
publicclassBextendsA{
B(){
//System.out.println("B......");
}
}

C类:

packagecn.test;
publicclassCextendsB{
C(){
//System.out.println("C...........");
}
}

Test类:

packagecn.test;
publicclassTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
Cc=newC();
c.test();
}
}

结果:

class cn.test.C
C
cn.test.C
class cn.test.B
B
cn.test.B

㈡ java 如何通过对象获取对象类全名

java是不支持在运行中进行强制转化的! 如果事先知道类型,可以通过强制转化实现! 如果不知道! 可以采用这种方式!
String className = obj.getClass().getName(); 得到类名
然后:
A a = (A)Class.forName(className).newInstance();
//上面这句话的意思是,forName(className):静态加载className这个类;
// .newInstance(),实例化一个对象
// A 代表你知道的这人类或者这个类的父类, 把强制转化成你所要的对象。
这和你
A a = new A();
是一样的效果!

㈢ java 怎么样得到实体类的名字

//用反射

Class cl = Class.forName(str);//加载类
// 获取类名
String lm = cl.getSimpleName();

㈣ Java如何得到类名

可以用反射实现,传入的参数是类的全限定名称
class clz = class.forname("java.lang.string");

㈤ java,在子类里面如何获取父类的类名

java中是可以多继承的,所以子类获得父类的类名,可以使用getSuperClass()这个方法来获得,示例如下:

publicclassTest1extendsDate{
publicstaticvoidmain(String[]args){
newTest1().test();//测试获得父类类名方法
}
publicvoidtest(){
System.out.println(Test1.class.getSuperclass().getName());//打印父类类名,使用getSuperclass()方法
}
}

㈥ JAVA强制类型转换的问题,如何获取类型名

把字符串转化为char数组: 例如: String str=“abcdef”; char[] ch=st.toCharArray(); 若要转化为单个char,可以从数组中取出来赋值给char

㈦ JAVA 获取class对象 类名.class Class.forName()两种方法什么情况下使用 为什么

Class.forName()是根据类名称加载类 比如有一个类名为com.abc.AAA 此处Class.forName(‘com.abc.AAA ’).newInstance()就会创建一个AAA对象而.class一般用来获取类的通用属性 比如AAA.class.getDeclareMethod()是获取AAA类的所有声明的方法 主要用于反射机制

㈧ java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名

可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。
import java.io.File;
import java.lang.reflect.Method;
public class LoopApp {
public static void main(String[] args) throws Exception {
String packageName = "";
File root = new File(System.getProperty("user.dir") + "\\src");
loop(root, packageName);
}
public static void loop(File folder, String packageName) throws Exception {
File[] files = folder.listFiles();
for (int fileIndex = 0; fileIndex < files.length; fileIndex++) {
File file = files[fileIndex];
if (file.isDirectory()) {
loop(file, packageName + file.getName() + ".");
} else {
listMethodNames(file.getName(), packageName);
}
}
}
public static void listMethodNames(String filename, String packageName) {
try {
String name = filename.substring(0, filename.length() - 5);
Object obj = Class.forName(packageName + name);
Method[] methods = obj.getClass().getDeclaredMethods();
System.out.println(filename);
for (int i = 0; i < methods.length; i++) {
System.out.println("\t" + methods[i].getName());
}
} catch (Exception e) {
System.out.println("exception = " + e.getLocalizedMessage());
}
}
}

㈨ 如何在java方法中获得当前方法的名称

在java方法中获得当前方法的名称方法:

一、获得当前类名:

Java代码

  • this.getClass().getName();

  • 二、获得当前方法名臣:
    JDK1.4

    Java代码

  • newException().getStackTrace()[i].getMethodName();//其中i=0就是当前的类的方法名字;i==1就是调用者的方法

  • JDK1.5之后可用

    Java代码

  • Thread.currentThread().getStackTrace()[1].getMethodName();//具体使用数组的那个元素和JVM的实现有关,我在SUNJDK6下面测试的是第二个元素,具体说明可以查看Thread.getStackTrace方法的javadoc

㈩ 利用java反射机制,通过一个对象获得完整的包名和类名

1、Test t = new Test().Class clazz = t.getClass().System.out.println(clazz.getCanonicalName()).System.out.println(clazz.getSimpleName()).

2、public class TestReflect {public static void main(String[] args) throws Exception {TestReflect testReflect = new TestReflect().System.out.println(testReflect.getClass().getName()).// 结果 net.xsoftlab.ke.TestReflect.}}

3、Java程序

热点内容
iqoo安卓11变声器在哪里 发布:2024-12-22 15:46:45 浏览:251
ie锁定初始密码在哪里找 发布:2024-12-22 15:44:48 浏览:295
linuxtcp窗口 发布:2024-12-22 15:34:24 浏览:947
安卓官翻机和原装有什么区别 发布:2024-12-22 15:34:24 浏览:661
linux挂载的磁盘 发布:2024-12-22 15:34:23 浏览:233
密码不允许含有字符是什么意思 发布:2024-12-22 15:30:15 浏览:168
图片压缩求 发布:2024-12-22 15:05:28 浏览:780
我的世界tis服务器怎么加 发布:2024-12-22 14:48:09 浏览:579
方舟服务器虚拟内存是什么意思 发布:2024-12-22 14:21:52 浏览:956
磁力片编程课 发布:2024-12-22 14:10:57 浏览:272