java collection包源码怎么分析好
答案:2 悬赏:40 手机版
解决时间 2021-01-25 13:42
- 提问者网友:留有余香
- 2021-01-25 09:19
java collection包源码怎么分析好
最佳答案
- 五星知识达人网友:执傲
- 2021-01-25 10:42
因为你用的是Collection型的引用变量 这个接口里没有实现 get方法所以你就不能用get来获取数据~~ 要想获取 Collection型里保存的数据可以用叠代器 把 for (int i = 0; i
全部回答
- 1楼网友:荒野風
- 2021-01-25 11:52
在面向对象的编程中,接口是表示将来它的实现类应该具备什么功能(具体怎么做到这点,就是实现类的细节,与接口声明无关)。因此我们可以在实现类中实现多个接口把这些接口中的功能都实现了。
像 collection 接口仅声明了一些基本的特性,而list, queue, set 则扩展了声明了其它特性。面向对象中需要正确地划分功能说明并模块化。便于将来类库规模复杂之后依然条理清晰,不容易出错。如果你的程序就那么几个类的话,当然你可以把所有东西写在单一一个 java 源文件中。
那么当你想在java 中知道那个类实现了什么方法,如果你确信知道那个类名,你可以查看它的 api 文档,上面会写上它实现了什么接口,比如 arraylist 我们已知它实现了 list 接口,而 list 又扩展了 collection 接口。如果你依然动态地计算出来,比如当我们拿到一个对象实例时,我不知道它是什么类型的,则可以用反射:
object a = ...;
class clazz = a.getclass();
class[] interfaces = clazz.getinterfaces();
for(int i = 0, size = interfaces.length; i < size; i++) {
system.out.println("interface :" + interfaces[i].getname());
}
或者你想知道它是否是 list 的实例类:
if (a instanceof list) {
for(listiterator iter = ((list) a).listiterator(); iter.hasnext();) {
...
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯