Java泛型子类继承调用
来源:互联网 发布:java微信开发框架搭建 编辑:程序博客网 时间:2024/05/29 13:56
假设有这么一个需求:在一个函数中传入一个对象,并给出这个对象的类及其一个子类,如果这个对象是其子类的实例,那么就执行子类的方法,如果不能强转那么就执行这个父类本身的方法。或者这样的需求:还是给出一个对象,但是给出类及其子类,要求为了代码可读性将子类方法和父类方法分开写。下面是一个泛型写法。以imageView及其父类View为例。首先是几个接口
interface CallbackHaha<E extends T,T> {public T parentMethod(T t);//如果传入一个父类,如果强转成功,则既执行子类代码,又执行父类代码,如果强转失败,则只执行父类代码public E childMethod(E e);//如果传入一个子类,则既执行子类代码,又执行父类代码}public <T, E extends T> void childCall(E e,CallbackHaha<E,T> callbackHaha){T t=callbackHaha.parentMethod(e);//执行父类的方法(用于代码分离)e=callbackHaha.childMethod(e);//执行子类特有的方法}public <T, E extends T> void parentCall(T t,CallbackHaha<E,T> callbackHaha){try {E e = (E)t;//把父类强转成其子类e=(E) callbackHaha.childMethod(e);//如果强转成功} catch (ClassCastException e) {//如果强转失败// TODO: handle exceptiont=callbackHaha.parentMethod(t);}}
调用方法
ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);//传入一个子类进行处理childCall(imageView1, new CallbackHaha<ImageView,View>() {@Overridepublic ImageView childMethod(ImageView e) {// TODO Auto-generated method stub//传入子类自身的处理e.setImageResource(R.drawable.btn_gengduo_nor);return e;}@Overridepublic android.view.View parentMethod(android.view.View t) {// TODO Auto-generated method stub//把这个子类强转成其父类进行处理(虽然方法多余,但是代码分离的效果也是极好的)t.setVisibility(View.VISIBLE);return null;}});//传入一个父类,并试着强转成其某一个子类,并对子类进行处理parentCall(imageView1, new CallbackHaha<ImageView,View>() {@Overridepublic ImageView childMethod(ImageView e) {//如果强转成功// TODO Auto-generated method stube.setImageResource(R.drawable.btn_gengduo_select);return e;}@Overridepublic View parentMethod(View t) {//如果强转失败// TODO Auto-generated method stubt.setVisibility(View.GONE);return t;}});}
0 0
- Java泛型子类继承调用
- Java继承中调用子类构造函数
- Java - Java子类继承父类并调用接口
- java类继承中父类调用子类函数的问题
- java中子类继承父类方法及调用规则
- Java基础:子类继承父类调用顺序
- Java子类与继承
- java中子类继承父类调用利用继承方法时调用this
- Java子类继承父类
- 【JAVA】+ 封装 + 父类~子类~继承
- java子类继承父类
- 【Java笔记】继承父类的方法可以调用子类的方法(子类必须在重写相应方法)
- Java泛型擦除和泛型的子类继承限制
- Java子类中获取继承时传入泛型的类型
- java中的继承(子类调用父类构造方法还不懂)
- Java里子类调用父类构造方法把父类的内容继承怎么做?
- 错误记录--Java中子类继承父类必须调用父类的构造方法?
- java中子类继承父类自动调用父类无参构造方法的问题
- db_oracle_exp&imp_01
- 大数阶乘
- 大数据(六) - ZooKeeper
- 使用框架结构之frameset
- NoSQL之Redis(一)---CentOS6.5安装Redis
- Java泛型子类继承调用
- AFNetWorking缓存处理
- iOS崩溃调试
- 前端性能优化
- leetcode总结 -- 关于merget k sorted list问题。heap
- 【非日常】Android事件体系
- 不要随便设置随机种子
- 字母图形
- Nginx+PHP-FPM优化技巧总结(转)