1
0

More than 3 years have passed since last update.

Oracle Code One 2019で興味深かったセッション

Posted at

2010/1/18(土) にOracle Code One 2019 報告会 in 大阪で「オッス! Oracle Code One」というタイトルで登壇させて頂きました。

そこで興味深かったセッションとして「Duke’s Star Trek with Java 12 Code Challenges」というセッションの内容を紹介いたしました。
図1.png

Oracle Code Oneは朝から晩まで4日間に渡るカンファレンスなのでいくつものセッションを聞くのですが、セッションの数が多すぎていつもセッション選びに苦労します。
しかしStar Trekの好きな私はタイトルを見ただけでほぼノータイムで予約を入れました。
内容はJDK6からJDK12までの各バージョンで取り入れられた新機能について4択のクイズ形式で紹介するというもので、アニメーションで楽しいスライドを使って進められとてもいいセッションでした。

報告会ではこのセッションで出たクイズの一部(と補足のために私が作ったオリジナル)を紹介しました。

例えばJDK7についての紹介では

public class ShipDoorEp1 implements AutoCloseable {

  public void open() { throw new RuntimeException("Fail to open door."); }

  @Override
  public void close() throws Exception {
    System.out.println("Ship door is closed."); 
  }

  public static void main(String... doorMalfunction) {
    try (ShipDoorEp1 shipDoor = new ShipDoorEp1()) {
      shipDoor.open();
    } catch (Exception e) {
      System.out.println(e.getMessage());
    } finally {
      System.out.println("The end.");
    }
  }
}

このようなコードを実行したら以下のA, B, C, D のどれになるかというものです。
正解は報告会で使用した資料(記事の最後のリンク)を見てください。

A)
Fail to open door.
The end.
Ship door is closed.

B)
Fail to open door.
Ship door is closed.
The end.

C)
Ship door is closed.
Fail to open door.
The end.

D)
Fail to open door.
The end.

この問題はかなり簡単だと思いますが、セッションではさらに深く掘り下げて

public class ShipDoorEp2 implements AutoCloseable {

  public void open() { throw new RuntimeException("Fail to open door."); }

  @Override
  public void close() throws Exception { 
    throw new RuntimeException("Fail to auto-close door."); 
  }

  public static void main(String... doorMalfunction) {
    try (ShipDoorEp2 shipDoor = new ShipDoorEp2()) {
      shipDoor.open();
    } catch (Exception e) {
      System.out.println(e.getMessage());
      System.out.println(e.getSuppressed()[0].getMessage());
    } finally {
      System.out.println("The end.");
    }
  }
}

このようなsuppressed exceptions(抑制済み例外)についても触れていました。
(問題の選択肢、解答は資料でご確認ください)

もちろんこのセッション以外にも興味深かったセッションはたくさんあったのですが、色々機能追加などがあったJDK6からJDK12までのバージョンアップの歴史を振り返ることができたという点でこのセッションが一番印象に残りました。

来年もOracle Code Oneに参加していいセッションが聴ければいいなあと思います。

発表に使った資料です

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0