首页 > 代码库 > Java 静态内部类的使用
Java 静态内部类的使用
以前一直以为静态内部类没用,现在发现在特定条件下使用静态内部类会更加方便.
静态内部类的使用最佳的示例莫过于jdk里面的LinkedList类了.
查看LinkedList的源码,LinkedList的节点用一个静态内部类Node表示,代码如下
private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } }
为什么节点要用静态内部类?
1.首先,用内部类是因为内部类与所在外部类有一定的关系,往往只有该外部类调用此内部类。所以没有必要专门用一个Java文件存放这个类。
2.随着类的加载而产生
3.由于LinkedList实现了Serializable接口,而内部类使用的是编译器产生的合成域来保存指向外围实例的引用,以及保存来自外围作用域的局部变量的值.这些域如何对应到类中是没有明确规定的,因此内部类的内部实现是定义不清楚的.[1]
[1] Effective Java 2nd Edition
Java 静态内部类的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。