论坛首页 入门技术论坛

java ArrayList的特殊初始化方式。。。。

浏览 12932 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-02-01  
在看struts2.0源码的时候发现这样的语法,其中add方法是ArrayList自带的,我不明白这样的初始化的原因,和初始化之后,extensions 指向的对象个什么状态?
我知道ArrayList其实在维护一个数组,那这个初始化方式产生了几个数组?
    List extensions = new ArrayList() {{ add("action");}};
   发表时间:2008-02-01  
我想我搞明白了:
    ArrayList是一个类,如果这样写:
    ArrayList list=new ArrayList(){{add("action");}};
   ArrayList作为匿名的内部类生成一个实例,把引用赋给list
   {add("action");}作为这个内部类的初始化代码块而 存在的
    这种写法相当于:
   
   
    public class Test {
	private String a;
	{add("asdfasdf");}   //相当于在这里写初始化代码块
	public void add(String a)
	{
		this.a=a;
	}
   	public String getA() {
		return a;
	}
	public void setA(String a) {
		this.a = a;
	}
          public static void main(String[] str)
    {
    	Test test=new Test ();
    	System.out.println(test.getA());
    }

}
    

0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics