用 Java 7 语法开发 Android 应用

        虽然现在开发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  ——
——欢迎关注微信号“曹文斌的软件思考”,共同探讨软件人生——


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文斌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值