有什么特征吗?

解决方案 »

  1.   

    匿名内部类的小例子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();
        }
    }
      

  2.   

    lz比较输出
    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());
    }
      

  3.   

    不知道你如何调试的? 
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.List;
    import java.util.ListIterator;class Test {    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());
        }
    }
      

  4.   

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