/**
*
* 通过Class对象创建其表示的对象
*
*/
public class InstanceDemo {
public static void main(String[] args) {
Class ysClass = YunSong.class;
try {
YunSong ys = (YunSong) ysClass.newInstance();
ys.setName(
"云松");
ys.setAge(
35);
System.out.println(ys);
}
catch (InstantiationException e) {
e.printStackTrace();
}
catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
public class InstanceDemo2 {
public static void main(String[] args) {
Class ysClass = YunSong
.class
//通过调用getConstructors()获取此类的所有的构造方法(公共的)
Constructor<YunSong>[] cs = ysClass
.getConstructors()
for (int i =
0
Constructor c = cs[i]
String name = c
.getName()
System
.out.println(Modifier
.toString(c
.getModifiers())+
","+name)
Class[] csParameters = c
.getParameterTypes()
for (int j =
0
System
.out.println(csParameters[j]
.getName())
}
System
.out.println(
"--------")
}
System
.out.println(
"-----获取此类的所有的公共的方法------")
//通过 getMethods获取此类的所有的公共的方法
Method[]methods = ysClass
.getMethods()
for (Method method : methods) {
System
.out.println(
"方法的名称:"+method
.getName())
System
.out.println(
"返回值类型:"+method
.getReturnType()
.toString())
Class[] ps = method
.getParameterTypes()
for (Class class1 : ps) {
System
.out.println(
"参数名称:"+class1
.getName()+
",参数修饰符"+Modifier
.toString(class1
.getModifiers()))
}
System
.out.println(
"----")
}
System
.out.println(
"-----获取此类的所有的公共的属性------")
//通过获取此类的所有的公共的属性
Field[] fields = ysClass
.getFields()
for (Field field : fields) {
System
.out.println(
"属性名称:"+field
.getName()+
",属性修饰符:"
+Modifier
.toString(field
.getModifiers())+
",属性类型:"+field
.getType()
.toString())
}
//已知方法的参数,可以使用getMethod()
try {
Method setNameMethod = ysClass
.getMethod(
"setName", String
.class)
YunSong yss = (YunSong)ysClass
.newInstance()
setNameMethod
.invoke(yss,
"云松")
System
.out.println(
"设置完:"+yss)
} catch (NoSuchMethodException | SecurityException e) {
e
.printStackTrace()
} catch (IllegalAccessException e) {
e
.printStackTrace()
} catch (IllegalArgumentException e) {
e
.printStackTrace()
} catch (InvocationTargetException e) {
e
.printStackTrace()
} catch (InstantiationException e) {
e
.printStackTrace()
}
}
}
转载请注明原文地址: https://ju.6miu.com/read-5045.html