说实在的,我看到你提出的这个问题也挺蒙的,Map.Entry常用,我还真没仔细想过你提出的这个问题,呵呵。
网上我看到的一则明确针对内部接口作用的回答,虽然是非官方的,但是还是贴出来供你参考
One good reason to use an inner interface is if its function is directly related to the class it is in. A good example of this is a Listener. If you had a class Foo and you wanted other classes to be able to listen for events on it, you could declare an interface named FooListener, which is ok, but it would probably be more clear to declare an inner interface and have those other classes implement Foo.Listener (an inner class Foo.Event isn't bad along with this).
如果你有一个类Foo和你希望其他类能够监听它的事件,你可以再另外声明一个叫FooListener的接口,需要监听Foo类的的那个类就必须要实现这个接口,但如果声明为内部接口可能会更加明确。
我自己的理解,有如下一种情况,你设计了一个抽象类,里面有属性,有方法还有抽象方法。正如你所知的,抽象类是不能被实例化的,这个时候,你又要在一个类中包含抽象方法,又要这个类被实例化,那怎么办呢?就只能使用内部接口把这些抽象类封装起来。
那么,使用了内部接口的类具备如下特点:
1. 可以直接被实例化
2. 其子类如果不明确声明implements内部接口,可以不用实现内部接口
显然这种做法的实际使用意义并不大我个人也感觉这只是为了使得语义更加明确罢了 |