Facebook Twitter Google Maps RSS
Home Androidアプリ AndroidがJava7に対応
formats

AndroidがJava7に対応

 
2014年3月にリリースされた、ADT 22.6.0 より
java7 が公式にサポートされるようになりました。
そこで、java7 で利用できるようになった構文を
一部紹介していきたいと思います。
 

1.switch文で文字列比較 (minSdkVersion が、8以上で利用可)

——— Java6 以前 ———
String color = “green”;

if (“red”.equals(color)) {

} else if (“blue”.equals(color)) {

} else if (“green”.equals(color)) {

} else {

}
———————————
                  ↓
———– Java7 ————
String color = “green”;

switch (color) {
case “red”:
        break;
case “blue”:
        break;
case “green”:
        break;
default:
        break;
}
———————————

String.equals()による文字列比較を、毎回行う必要がなくなるため
コードの可視性が上がります。

 

2.ダイアモンド演算子の型省略 (minSdkVersion が、8以上で利用可)

——— Java6 以前 ———
List<String> list = new ArrayList<String>();

Map<Integer, String> map = new HashMap<Integer, String>();
———————————
                  ↓
———– Java7 ————
List<String> list = new ArrayList<>();

Map<Integer, String> map = new HashMap<>();
———————————

総称型を使ったクラスをインスタンス化する際に
型引数を省略できるようになったため、コード量を削減できます。
ただし、メソッドのパラメータ内、および匿名クラスの生成時など
構文上明白でない場合は、使用できません。

 

3.例外のマルチキャッチ (minSdkVersion が、8以上で利用可)

——— Java6 以前 ———
try {

} catch (IOException e) {

} catch (SQLException e) {

} finally {

}
———————————
                  ↓
———– Java7 ————
try {

} catch (IOException | SQLException e) {

} finally {

}
———————————

キャッチした例外に対して同じ処理をしたい場合
コード量を削減できます。

 

4.リソース付きtry文 (minSdkVersion が、19以上で利用可)

——— Java6 以前 ———
InputStream is = null;

try {
        is = new FileInputStream(“”);
        is.read();

} catch (IOException e) {

} finally {
        if (is != null) {
                try {
                        is.close();

                } catch (IOException e) {

                }
        }
}
———————————
                  ↓
———– Java7 ————
try (InputStream is = new FileInputStream(“”)) {
        is.read();

} catch (IOException e) {

}
———————————

リソース(変数)の型がAutoCloseableインターフェースを継承(実装)しているとき
自動的にclose()が呼ばれるため、コード量を削減できます。
Exceptionが発生し、catchされた時には
既にリソースはclose済みであることに注意してください。

 

参考HP:http://www.ne.jp/asahi/hishidama/home/tech/java/uptodate.html

Tags:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*