黑马程序员技术交流社区

标题: Map.Entry接口的思考 [打印本页]

作者: sofeel    时间: 2015-2-24 12:22
标题: Map.Entry接口的思考
这是因为坛友的一个问题而引发的思考,欢迎大家讨论。
一道选择题不理解,求解释,谢谢。。。
http://bbs.itheima.com/thread-171294-1-1.html
(出处: 黑马程序员IT技术论坛)

  1. import java.util.Map;

  2. public class EntryTest {

  3.         /**
  4.          * Map.Entry
  5.          */
  6.         public static void main(String[] args) {
  7.                 /*
  8.                  * 因为:
  9.                  * 1,静态。Entry为Map的成员(被static修饰的只能是成员),可以直接用类名引用类名的方式访问。
  10.                  * 2,接口。定义一个标准,只要遵守这个标准的人,都可以使用它的功能。
  11.                  *
  12.                  * 总结:
  13.                  * 因为是静态的内部接口,实质升级成了共享接口,所以和一般接口的使用无差别。内而不内。
  14.                  * 下面我自定义Animal类,实现了Map.Entry接口。我能如此,HashMap自不用说。
  15.                  *
  16.                  * 感悟:
  17.                  * 这样的设计似乎是在提醒我们:你要用Map吗?过来看看我们提供的Map.Entry,功能很不错哦!
  18.                  * 内而不内。
  19.                  * java设计者高明。
  20.                  *
  21.                  *
  22.                  * 调用实现接口的方法有两种:1、animal.getValue();2、me.getValue();
  23.                  * */
  24.                
  25.                 Animal animal=new Animal();
  26.                 animal.getValue();
  27.                
  28.                
  29.                 Map.Entry  me=new Animal();
  30.                 me.getValue();
  31.         }

  32. }
  33. /*
  34. *
  35. *
  36. * */
  37. class Animal implements Map.Entry<String, String>{

  38.         @Override
  39.         public String getKey() {
  40.                 // TODO Auto-generated method stub
  41.                 return null;
  42.         }

  43.         @Override
  44.         public String getValue() {
  45.                 // TODO Auto-generated method stub
  46.                 return null;
  47.         }

  48.         @Override
  49.         public String setValue(String value) {
  50.                 // TODO Auto-generated method stub
  51.                 return null;
  52.         }
  53.        
  54. }
复制代码




作者: Hsidar    时间: 2015-2-24 12:22
你想说明什么?
作者: sofeel    时间: 2015-2-24 14:35
原贴我链接错了

作者: sofeel    时间: 2015-2-24 14:39
这是原帖http://bbs.itheima.com/forum.php ... peid%26typeid%3D513
作者: sofeel    时间: 2015-2-24 14:58
Hsidar 发表于 2015-2-24 14:31
你想说明什么?

这种设计思想很好。
接口静态绑定到类上:
1,扩充了类的功能;
2,接口还是接口,可以随意使用。
作者: sofeel    时间: 2015-2-25 12:06
还是收了吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2