子类如何调用父类的protected方法?
我尝试的方法:
1.直接调用,行不通。
2.强转,反射,也报错。
ProgressBar instance = (ProgressBar) this; @SuppressWarnings("unchecked") Class<ProgressBar> clazz = (Class<ProgressBar>) instance.getClass(); try { progressBarOnDraw = clazz.getDeclaredMethod("onDraw", Canvas.class); progressBarOnDraw.setAccessible(true); } catch (NoSuchMethodException e) { e.printStackTrace(); } if (progressBarOnDraw != null) { try { progressBarOnDraw.invoke((ProgressBar) this, canvas); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { e.printStackTrace(); } } else { super.onDraw(canvas); }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
super.method();
我设置了,还是不行呢。
method.setAccessible(
true
);