java为啥常用Map<>map=new HashMap()表达式

码农公社  210.net.cn   210= 1024  10月24日一个重要的节日--码农(程序员)节

初学Java的时候经常看到教材上的写法:Map<>map=new HashMap(),而不是它的具体实现,那么这样做的好处是什么呢?  

<Effective Java>第52条:通过接口引用对象  

作者认为,如果有合适的接口类型存在,那么对于参数、返回值、变量和域来说,就都应该使用就接口类型进行声明。  

只有当你利用构造器创建某个对象的时候,才真正需要引用这个对象的类。


// 一个好的栗子  

1 Map<Integer,String> map = new HashMap<>();


//一个不那么好的栗子  

1 HashMap<Integer,String> map = new HashMap<>();


这样做的好处在于:你的程序会更灵活。当你决定更换实现的时候,所要做的就只是:改变构造器中类的名称。

比如:  Map<Integer,String> map = new TreeMap<>();  

如果不这么做,而使用HashMap来声明map,若客户端在其它地方,若后续改动了,则无法通过编译。     


总结:用接口引用对象会使程序更加灵活。



评论