您的位置:

java获取类名,获取类的名称

本文目录一览:

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

给你写了3个类:

A类:

package cn.test;

public class A {

 public void test(){

  System.out.println(this.getClass());

  System.out.println(this.getClass().getSimpleName());

  System.out.println(this.getClass().getName());

 }

}

B类:

package cn.test;

public class B extends A{

 

}

Test类:

package cn.test;

public class Test {

 /**

  * @param args

  */

 public static void main(String[] args) {

  B b = new B();

  b.test();

 }

}

结果:

class cn.test.B

B

cn.test.B

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

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

A类:

package cn.test;

public class A {

 public void test(){

  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类:

package cn.test;

public class B extends A{

 B(){

//  System.out.println("B......");

 }

}

C类:

package cn.test;

public class C extends B{

 C(){

//  System.out.println("C...........");

 }

}

Test类:

package cn.test;

public class Test {

 /**

  * @param args

  */

 public static void main(String[] args) {

  C c = new C();

  c.test();

 }

}

结果:

class cn.test.C

C

cn.test.C

class cn.test.B

B

cn.test.B

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

//用反射

Class cl = Class.forName(str);//加载类

// 获取类名

String lm = cl.getSimpleName();

利用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.baike.TestReflect.}}

3、Java程序

Java如何得到类名

用反射.

比如说现在有一个Test类的引用t.

Class c=t.getClass();

类名为c.getName();

结果中包括包的名.如果不想要包的名,自己处理下

Class类在java.lang包

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是不支持在运行中进行强制转化的! 如果事先知道类型,可以通过强制转化实现! 如果不知道! 可以采用这种方式!

String className = obj.getClass().getName(); 得到类名

然后:

A a = (A)Class.forName(className).newInstance();

//上面这句话的意思是,forName(className):静态加载className这个类;

// .newInstance(),实例化一个对象

// A 代表你知道的这人类或者这个类的父类, 把强制转化成你所要的对象。

这和你

A a = new A();

是一样的效果!