相关疑难解决方法(0)

为什么在Java中使用接口名称声明变量?

这是一个真正的初学者问题(我还在学习Java基础知识).

我可以(有点)理解为什么方法会返回List <String>而不是ArrayList <String>,或者为什么它们会接受List参数而不是ArrayList.如果它对方法没有影响(即,如果不需要ArrayList中的特殊方法),这将使该方法更灵活,更容易用于调用者.其他集合类型也是如此,例如Set或Map.

我不明白的是:通常的做法是创建这样的局部变量:

List<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

虽然这种形式不太常见:

ArrayList<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

这有什么好处?

我只能看到一个小缺点:必须添加java.util.List的单独"import"行.从技术上讲,可以使用"import java.util.*",但我也不经常看到,可能是因为某些IDE自动添加了"import"行.

java variables interface declaration

17
推荐指数
2
解决办法
6045
查看次数


标签 统计

interface ×2

.net ×1

c# ×1

declaration ×1

java ×1

variables ×1