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

Python016

java 如何通过对象获取对象类全名?,第1张

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

import java.io.File

import java.io.IOException

import java.net.URL

public class MyUrlDemo {

public static void main(String[] args) {

MyUrlDemo muDemo = new MyUrlDemo()

try {

muDemo.showURL()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

public void showURL() throws IOException {

// 第一种:获取类加载的根路径 D:\git\daotie\daotie\target\classes

File f = new File(this.getClass().getResource("/").getPath())

System.out.println(f)

// 获取当前类的所在工程路径如果不加“/” 获取当前类的加载目录 D:\git\daotie\daotie\target\classes\my

File f2 = new File(this.getClass().getResource("").getPath())

System.out.println(f2)

// 第二种:获取项目路径D:\git\daotie\daotie

File directory = new File("")// 参数为空

String courseFile = directory.getCanonicalPath()

System.out.println(courseFile)

// 第三种: file:/D:/git/daotie/daotie/target/classes/

URL xmlpath = this.getClass().getClassLoader().getResource("")

System.out.println(xmlpath)

// 第四种: D:\git\daotie\daotie

System.out.println(System.getProperty("user.dir"))

/*

* 结果: C:\Documents and Settings\Administrator\workspace\projectName

* 获取当前工程路径

*/

// 第五种: 获取所有的类路径 包括jar包的路径

System.out.println(System.getProperty("java.class.path"))

}

}

对于包装类型变量,是可以直接获得的,变量名称.getClass().getName()

示例:

lass Test

{

public static void main(String[] args)

{

int i=1//int类型变量

System.out.println(getType(i))//打印变量类型为int

}

public static String getType(Object o){ //获取变量类型方法

return o.getClass().toString()//使用int类型的getClass()方法

}

}

扩展资料

变量的使用注意事项:

Java中的变量必须声明后才能进行使用;

变量的作用域:在一对{}中为有效区间;

需要进行初始化后才能使用变量;

数据类型 变量名 = 初始化值

变量的使用是通过变量名来访问所指向的内存区域中存储的值。