登录  /  注册
java - 对于同一个方法,有没有什么优雅的方法对不同来源的调用有不同的处理方式?
淡淡烟草味
淡淡烟草味 2017-07-03 11:42:06
[Android讨论组]

我在写一个控件的时候。
有一个类subViewPager继承了ViewPager,我在另外一个地方需要用到这个ViewPagergetCurrentItem()方法,意思就是获取这个控件的某个坐标。

但是由于我这个ViewPager为了特殊效果,就让它的getCurrentItem()返回的坐标有可能超出了我数据集合的长度size

比如我的数据集合的长度为size = 1024
getCurrentItem()返回的是40280

所以在我主动调用他的时候我希望他能返回给我的是这个坐标%=size : 4028%1024的结果。

同时他的getCurrentItem()方法被系统调用时应该返回应该是40280这样的数字。

我原来的做法是写一个特殊的方法获得这个%=size 后的结果。在需要获取这个参数的时候强转一下。

后来我改变了一下,利用new Exception().getStackTrace(); 获取调用栈的信息来判断方法是否被指定类调用的。这样就不需要强转和写一个子类特有的方法了。

但是这样的做法会产生大量的垃圾内存,频繁引起GC,所以考虑用回第一种方法来处理了。
但是强转总是有点让人不爽,感觉没有什么复用性。(虽然是代码烂的原因。。而且这样做这个subViewPager的复用性也降低了)所以就想来请教一下有什么办法让同一个方法在不同类中被调用时有什么办法可以优雅的做出不同的操作?

淡淡烟草味
淡淡烟草味

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号