用 Java 7 语法开发 Android 应用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/caowenbin/article/details/42529091
        虽然现在开发Android应用时使用Java 8还需要依赖于第三方工具,但是使用Java 7是不需要如此麻烦的。Android Kitkat SDK已经可以支持Java 7的语法了,因此,用这个版本以后的SDK即可以编译包含Java 7语法的代码,下文所有的代码都是在Android Studio IDE下用Kitkat SDK编译。

        Java 7的几个语法改善虽然远不如Java 8的影响大,但是也能给开发人员带来一些显而易见的好处,挑几个常用的介绍一下。

二进制字面常量和辅助数字阅读的下划线

        使用二进制常量在某此需要处理二进制数据的时候更易于阅读,甚至好于十六进制。同样,使用下划线在数字间进行分隔,也非常易于对代码的阅读。
int anInt = 0b101;
long creditCardNumber = 1234_5678_9012_3456L;

switch语句支持字符串比较

        对于需要根据字符串进行多分支处理的情况,再也不用写一组if语句了,现在switch语句已经支持字符串,并且经过编译器优化后性能优于if语句。
public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) {
     String typeOfDay;
     switch (dayOfWeekArg) {
         case "Monday":
             typeOfDay = "Start of work week";
             break;
         case "Tuesday":
         case "Wednesday":
         case "Thursday":
             typeOfDay = "Midweek";
             break;
         case "Friday":
             typeOfDay = "End of work week";
             break;
         case "Saturday":
         case "Sunday":
             typeOfDay = "Weekend";
             break;
         default:
             throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
     }
     return typeOfDay;
}

泛型对象构造时的类型推断

        对于泛型对象,在构造时需要同样指定具体类型,比如:
Map<String, List<String>> myMap = new HashMap<String, List<String>>();
        在Java 7中,由于使用了类型推断,所以可以写得更简洁:
Map<String, List<String>> myMap = new HashMap();

使用try语句确保资源关闭

        资源型对象的关闭是很麻烦的,以前的做法是要在finally块中调用close()方法,现在Java 7提供了更简洁的资源型try语句,可以确保资源被正确的关闭。如:
static String readFirstLineFromFile(String path) throws IOException {
  try (BufferedReader br = new BufferedReader(new FileReader(path))) {
    return br.readLine();
  }
}

在一个catch语句中包含多个Exception

        老写法:
catch (IOException ex) {
     logger.log(ex);
     throw ex;
catch (SQLException ex) {
     logger.log(ex);
     throw ex;
}
        新写法:
catch (IOException|SQLException ex) {
    logger.log(ex);
    throw ex;
}

        详细的语法特性请参考http://docs.oracle.com/javase/7/docs/technotes/guides/language/enhancements.html#javase7,希望有更多的Android应用采用Java 7更简洁的语法。

——欢迎转载,请注明原文出处 http://blog.csdn.net/caowenbin ——
——欢迎关注微信号“曹文斌的软件思考”,共同探讨软件人生——


展开阅读全文

没有更多推荐了,返回首页