West Farm
吾本布衣,生于川北,躬耕于代码的田地上。
posts - 16,  comments - 15,  trackbacks - 0
原文地址:http://stackoverflow.com/questions/15496/hidden-features-of-java
我选择几个有趣的:

1. 
Double Brace Initialization 
private static final Set<String> VALID_CODES = new HashSet<String>() {{
    add(
"XZ13s");
    add(
"AB21/X");
    add(
"YYLEX");
    add(
"AR2D");
 }};

2. 泛型参数可以这么用
public static <A, B extends Collection<A> & Comparable<B>> boolean foo(B b1, B b2, A a) {
   
return (b1.compareTo(b2) == 0) || b1.contains(a) || b2.contains(a);
}

3. Check null is not 
necessary
if( null != aObject && aObject instanceof String )
{
    // not necessary to check != null

}
 just use:
if( aObject instanceof String )
{
   
...
}


4. 
Allowing methods and constructors in enums
enum Cats {
  FELIX
(2), SHEEBA(3), RUFUS(7);

 
private int mAge;
 
Cats(int age) {
    mAge
= age;
 
}
 
public int getAge() {
   
return mAge;
   
}
}

5. 自Java 6开始在声明类路径时可以使用通配符 
java -classpath ./lib/* so.Main
6. Assert

assert object != null;
posted on 2011-10-12 13:11 West Farmer 阅读(353) 评论(2)  编辑  收藏 所属分类: Java

FeedBack:
# re: Java中鲜为人知的功能
2011-10-12 20:53 | @joe
确实用的少。  回复  更多评论
  
# re: Java中鲜为人知的功能
2011-10-12 23:00 | 蜀山兆孨龘
双花括号初始化那个,会生成一个匿名内部类,且可能严重影响 equals:如果 equals 用 if (getClass() == other.getClass()) 检查类型,就会始终返回 false,显然此处 VALID_CODES.getClass() != HashSet.class。个人不推荐。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2011年10月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿

随笔分类

随笔档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜