开发窍门技巧:Java窍门技巧的双括弧初始化

     原文地址:http://www.c2.com/cgi/wiki?DoubleBraceInitialization   这是我在JavaIdioms(http://www.c2.com/cgi/wiki?JavaIdioms)上看到个Java使用窍门技巧使用Java这么多年了也还是头次看到还很实用别看这小窍门技巧好像很简单但保证你不会在任何书Java教材上看到它不是个真正语法规范标准而是个语法使用方法变种小窍门技巧还蕴含着Java深层知识就是身经百战老手也不定能说出其中奥妙

  翻译正文:

  由于Java语言集合框架中(collections 如list map 等)没有提供任何简便语法结构这使得在建立常量集合时工作非常繁索每次建立时我们都要做:

  定义个临时集合类变量

  建立个空集合例子然后赋值给变量

  将数据放入集合中

  最后将集合做为参数传递给思路方法

  例如要将个Set变量传给个思路方法:

  Java代码


   Set validCodes =  HashSet;
  validCodes.add("XZ13s");
  validCodes.add("AB21/X");
  validCodes.add("YYLEX");
  validCodes.add("AR2D");
  removeProductsWithCodeIn(validCodes);



  也可以用静态思路方法

  Java代码


  private  final Set validCodes =  HashSet;
   {
  validCodes.add("XZ13s");
  validCodes.add("AB21/X");
  validCodes.add("YYLEX");
  validCodes.add("AR2D");
  }
  private  final Set validCodes =  HashSet;
   {
  validCodes.add("XZ13s");
  validCodes.add("AB21/X");
  validCodes.add("YYLEX");
  validCodes.add("AR2D");
  }



  其实还有简结思路方法我们可以用双括弧语法(double-brace syntax)建立并个新集合:

  Java代码


 private  final Set VALID_CODES =  HashSet {{
  add("XZ13s");
  add("AB21/X");
  add("YYLEX");
  add("AR2D");
  }};
  private  final Set VALID_CODES =  HashSet {{
  add("XZ13s");
  add("AB21/X");
  add("YYLEX");
  add("AR2D");
  }};



  或者


="xspace-totlerecord">2="xspace-totlepages">1/2="xspace-current">12>
Tags: 

延伸阅读

最新评论

发表评论