java里的一些技巧

一开始在quora上看到tricks:
https://www.quora.com/What-are-some-cool-Java-tricks
我是拒绝的,然而定语是cool,所以我就很cool地点进去了。

  • 注解:
    java6+以来,注解处理器一直是一个未被充分利用的trick,它能在编译期就找出错误,而不是等到运行时(这样会增大找出错误的难度)。
    然后答主Chris Hansen还推荐使用Dragger框架进行依赖注入。
  • 注释中运行代码:
    后续的答案除了使用JMX检测死锁的线程、如何序列化一个枚举类等,还有一个是讲如何在注释中插入能运行的部分的:
    1
    2
    3
    4
        public static void main(String... args) {   
    // The comment below is no typo.
    // \u000d System.out.println("This Comment Executed!");
    }

比如这里注释中的System.out.println输出语句就是可以运行的。XD简直是无比邪恶的技巧。其他比较好懂的:

  • 类型推断:
    还有一个tricks就是类型推断,例如:
    1
    2
    3
    4
    5
    6
    7
    public <T> Set<T> hashSet() {
    return (Set<T>)(new HashSet<T>());
    }
    {
    Set<String> set1 = hashSet();
    Set<Long> set2 = hashSet();
    }
    这对于数据类型参数化是很有用的。
  • 变长参数列表:

    1
    void example(String...strings) {};
  • 在泛型参数上使用联合:其中Bar为接口,Foo可为类或接口。

    1
    public class Baz<T extends Foo & Bar> {}
  • 使用标号进行流程控制:

    1
    2
    3
    4
    5
    6
    7
    8
    outer: 
    for (i = 0; i < arr.length; i++) {
    for (j = 0; j < arr[i].length; j++) {
    if (someCondition(i, j)) {
    break outer;
    }
    }
    }
  • google java编程风格指南:
    http://www.topthink.com/topic/12834.html

推荐文章