黑马程序员技术交流社区
标题:
Java如何使用反射调用父类的方法?
[打印本页]
作者:
何小红
时间:
2012-9-21 22:08
标题:
Java如何使用反射调用父类的方法?
Java如何使用反射调用父类的方法?
作者:
张 涛
时间:
2012-9-21 22:11
子类继承和重写父类的方法,调用父类哪个方法?重写前的吗?重写前的方法,子类不具有,无法调用。若调用其他从父类继承的方法,直接使用getMethod方法得到method对象,再使用invoke方法调用就行了。
作者:
haha_hyq
时间:
2012-9-21 22:15
public static Method getDeclaredMethod(Object object, String methodName, Class<?> ... parameterTypes){
Method method = null ;
for(Class<?> clazz = object.getClass() ; clazz != Object.class ; clazz = clazz.getSuperclass()) {
try {
method = clazz.getDeclaredMethod(methodName, parameterTypes) ;
return method ;
} catch (Exception e) {
}
}
return null;
}
调用就不说了,需要判断一下,
if( return null){
//没有这个方法
}
作者:
程振
时间:
2012-9-21 23:20
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
class Father{
public void fromFather(){
System.out.println("Method of Father");
}
}
class Son extends Father{
}
public class ReflectionDemo {
public static void main(String[] args) throws Exception {
Class sonClass = Son.class;
Class fatherClass = sonClass.getSuperclass();
Method[] method = fatherClass.getMethods();
for(Method tmp : method){
if(tmp.getName() == "fromFather")
tmp.invoke(fatherClass.newInstance(), new Object[]{});
}
}
}
复制代码
作者:
冯祖焱
时间:
2012-9-22 12:14
使用Class的getDeclaredMethod方法,它可以获取父类的方法或者非public方法,然后调用Method的invoke方法就OK了
作者:
冯祖焱
时间:
2012-9-22 12:14
使用Class的getDeclaredMethod方法,它可以获取父类的方法或者非public方法,然后调用Method的invoke方法就OK了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2