我们现在正在重新创建List接口以及我的DSA类中的ArrayList和LinkedList类,以显示有关添加/删除的两者的低效率分别得到/设定。
教授给了我们一个我以前从未听说过的概念"编码到界面。"帮助删除冗余似乎是合乎逻辑的,但我遇到了一个问题,我不确定它是否是一个IDE问题,或者这是否是预期的行为。
设置这样的ArrayList时(使用自定义接口和类,而不是来自util包):
Configurator.initialize(new DefaultConfiguration());
找不到ArrayList类中的size()方法,但是在ArrayList类中。
然而,当ArrayList被实例化而没有编码到接口时,即
public class foobar{
List<String> arraylist;
public foobar(){
arraylist = new ArrayList<String>();
...
size()方法可用。
这是正确的行为吗? 也许我误解了这个概念以及我在编写接口时所阅读的内容,但似乎唯一可用的方法是来自类中定义的接口的方法。
编辑:感谢所有的回复!我读了更多关于多态的知识,现在一切都有意义了。抱歉这个愚蠢的问题,我不明白为什么会这样工作
答案 0 :(得分:0)
由于没有人愿意回答我的建议,我鼓励您遵循此link
看起来如上所述使用List和ArrayList,你会想要使用这样的东西......
List list = Collections.synchronizedList(new ArrayList(...));