------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
还是用例子说一下吧:
package com.hzj.text;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class Fangshe {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str=new String("helloworld");
System.out.println(str.getClass().getName());
//结果为:java.lang.String
Class<?> str1=null;
//在jdk5.0上运行
Class<?> str2=null;
Class<?> str3=null;
str1=new String().getClass();
try {
//采用这种形式比较好
str2=Class.forName("java.lang.String");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
str3=String.class;
System.out.println("类名称:"+str1.getName());
System.out.println("类名称:"+str2.getName());
System.out.println("类名称:"+str3.getName());
/*运行结果
* 类名称:java.lang.String
类名称:java.lang.String
类名称:java.lang.String*/
//通过无参构造方法实例化对象
Tree tree;
Class<?> t=null;
try {
t=Class.forName("com.hzj.text.Tree");
tree=(Tree) t.newInstance();
tree.setAge("120");
tree.setTreeName("樱花树");
System.out.println(tree.toString());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//运行结果:Tree [age=120, treeName=樱花树]
//通过有参构造方法实例化对象
Tree tree2;
Tree tree3;
Constructor<?>[] constructors = t.getConstructors();
Class<?>[] interfaces = t.getInterfaces();
Class<?> superclass = t.getSuperclass();
try {
//tree2=(Tree) constructors[0].newInstance();
//tree3=(Tree)constructors[1].newInstance("120","木棉树");
//System.out.println(tree2.toString());
//System.out.println(tree3.toString());
//运行结果:Tree [age=null, treeName=null]
//Tree [age=120, treeName=木棉树]
for(int i=0;i<interfaces.length;i++){
System.out.println("实现的接口:"+interfaces[i].getName());
}
//运行结果:实现的接口:com.hzj.text.Plant
System.out.println("继承的父类:"+superclass.getName());
//继承的父类:java.lang.Object
for(int i=0;i<constructors.length;i++){
System.out.println("构造方法:"+constructors[i]);
}
//运行结果
/*构造方法:public com.hzj.text.Tree(java.lang.String,java.lang.String)
构造方法:public com.hzj.text.Tree()*/
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.hzj.text;
public class Tree implements Plant{
private String age;
private String treeName;
public Tree() {
super();
}
public Tree(String age, String treeName) {
super();
this.age = age;
this.treeName = treeName;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getTreeName() {
return treeName;
}
public void setTreeName(String treeName) {
this.treeName = treeName;
}
@Override
public String toString() {
return "Tree [age=" + age + ", treeName=" + treeName + "]";
}
public void xx() {
// TODO Auto-generated method stub
}
}
package com.hzj.text;
public interface Plant {
void xx();
}