当前位置: 代码迷 >> J2SE >> 内部类匿名类是怎么定义的
  详细解决方案

内部类匿名类是怎么定义的

热度:28   发布时间:2016-04-24 12:49:22.0
内部类匿名类是如何定义的?
有什么特征吗?

------解决方案--------------------
匿名内部类的小例子

Java code
public class Parcel {    public Contents contents() {        return new Contents() {            private int i = 50;            public int value() {                return i;            }        };    }    public static void main(String[] args) {        Parcel p = new Parcel();        Contents c = p.contents();    }}
------解决方案--------------------
lz比较输出
Java code
public static void main(String[] args){        List list = new List() {            private int i = 50;            public int value() {                return i;            }            public boolean add(Object e) {                return false;            }            public void add(int index, Object element) {            }            public boolean addAll(Collection c) {                return false;            }            public boolean addAll(int index, Collection c) {                return false;            }            public void clear() {            }            public boolean contains(Object o) {                return false;            }            public boolean containsAll(Collection c) {                return false;            }            public Object get(int index) {                return null;            }            public int indexOf(Object o) {                return 0;            }            public boolean isEmpty() {                return false;            }            public Iterator iterator() {                return null;            }            public int lastIndexOf(Object o) {                return 0;            }            public ListIterator listIterator() {                return null;            }            public ListIterator listIterator(int index) {                return null;            }            public boolean remove(Object o) {                return false;            }            public Object remove(int index) {                return null;            }            public boolean removeAll(Collection c) {                return false;            }            public boolean retainAll(Collection c) {                return false;            }            public Object set(int index, Object element) {                return null;            }            public int size() {                return 0;            }            public List subList(int fromIndex, int toIndex) {                return null;            }            public Object[] toArray() {                return null;            }            public Object[] toArray(Object[] a) {                return null;            }        };        System.out.println(new ArrayList().getClass().getName());        System.out.println(list.getClass().getName());    }
------解决方案--------------------
探讨
2楼的程序调试都通不过!

------解决方案--------------------
http://blog.csdn.net/ZangXT/archive/2008/07/28/2726427.aspx
曾经分析过内部类的一些原理,可以看看。
  相关解决方案