Java 反射调用父类方法

TinkerS 发布于 2012/06/21 19:20
阅读 6K+
收藏 1
Java如何使用反射调用父类的方法
加载中
1
baijian
baijian

楼上的说的太抽象了。

子类是不可以直接反射父类的方法的,需要一层层的查找父类方法。

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){
    //没有这个方法
}

0
RainJ
RainJ

父类的protected,default,public的方法可以通过Class.class的

public Method getDeclaredMethod(String name, Class<?>... parameterTypes)

调用。

如果父类的方法已经被子类覆盖了,你想通过子类的对象调用父类的方法,建议你先复习一下多态。

返回顶部
顶部