最近天气时好时坏,长短袖不停换好麻烦
也有点懒床的迹象了.为了好将来继续码代码/./.
这次学的是java反射机制,比如说在做工具的时候遇到了一些问题,比如如何得到某个类的的实例,如何得到某个类里面所有的变量及这些变量的类型。java反射机制是个好东西,用这种机制就可以轻松解决这些问题。
首先怎么根据一个类的名字得到一个类的实例,注意是用类的名字的时候一定要用全名,比如在一个com.test包中有一个类Student,但是你不能认为这个类的名字叫做Student,这里这个类的名字全称应为com.test.Student。好,说了这些之后我们说一下具体怎么操作。
Class是java.lang包中java反射机制类大家族中的一个类,用Class.forName()方法可以得到一个类的实例。比如上一段中的Student类,我们可以这样得到。
[java] view plaincopyprint?
package test;
public class Test
{
public static void main(String[] args)
{
try
{
Object object = Class.forName("com.test.Student").newInstance();
Student student = (Student) object;
}
catch (ClassNotFoundException e)
{
System.out.println("未找到类com.test.Student");
e.printStackTrace();
}
catch (ClassCastException e)
{
System.out.println("类型转换失败");
e.printStackTrace();
}
catch (InstantiationException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
}
}
总感觉缺了点什么.就先这样了.后面慢慢想..
也有点懒床的迹象了.为了好将来继续码代码/./.
这次学的是java反射机制,比如说在做工具的时候遇到了一些问题,比如如何得到某个类的的实例,如何得到某个类里面所有的变量及这些变量的类型。java反射机制是个好东西,用这种机制就可以轻松解决这些问题。
首先怎么根据一个类的名字得到一个类的实例,注意是用类的名字的时候一定要用全名,比如在一个com.test包中有一个类Student,但是你不能认为这个类的名字叫做Student,这里这个类的名字全称应为com.test.Student。好,说了这些之后我们说一下具体怎么操作。
Class是java.lang包中java反射机制类大家族中的一个类,用Class.forName()方法可以得到一个类的实例。比如上一段中的Student类,我们可以这样得到。
[java] view plaincopyprint?
package test;
public class Test
{
public static void main(String[] args)
{
try
{
Object object = Class.forName("com.test.Student").newInstance();
Student student = (Student) object;
}
catch (ClassNotFoundException e)
{
System.out.println("未找到类com.test.Student");
e.printStackTrace();
}
catch (ClassCastException e)
{
System.out.println("类型转换失败");
e.printStackTrace();
}
catch (InstantiationException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
}
}
总感觉缺了点什么.就先这样了.后面慢慢想..