• 検索結果がありません。

throw e;

ドキュメント内 How to Use the PowerPoint Template (ページ 36-41)

1Z0-808: Java SE 8 Programmer

7. throw e;

8. } 9. }

catch

した例外オブジェクトとは

別の例外オブジェクトを

throw

すると コンパイルエラーになります!

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

こんな問題に注意 - その2

37

Data and Time API

を使った日付の加減算

• 次のコードの実行結果正しく説明しているものはどれですか?

1. 2015-04-08 2. 2015-06-10 3. 2015-05-10

4.

実行時例外が発生する

LocalDate date = LocalDate.parse("2015-04-08");

date.plusDays(2);

date.minusMonths(-2);

System.out.println(date);

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

出題者の意図 - その2

• LocalDate クラスの parse メソッドの引数

第二引数がない場合、

DateFormatter.ISO_LOCAL_DATE (= "YYYY-MM-DD")

• LocalDate クラスでの加減算

– LocalDate

クラスは「日付」の演算のみ

(Day, Week, Month, Year)

時間のみを扱う場合は

LocalTime

クラス。日付と時間は

LocalDateTime

クラス

メソッド引数には負の値を指定しても

OK

– date.minusMonths(-2); // 評価結果は 2015-06-08

38

Date and Time API

の日付は不変オブジェクト

“2015-4-8”

だとフォーマットに

合致しないので実行時例外になります

One Point:

LocalDate

クラスのオブジェクトは不変

(Immutable) です。

演算を行っても作成したオブジェクトの値は変わらない点に注意しましょう。

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

こんな問題に注意! - その3

39

Lambda

式に惑わされるな!

• 次のコードを確認してください。

このコードについて正しい説明はどれですか?

1. 246810

が出力される

2. 12345678910

が出力される

3.

実行時例外になる

4.

コンパイルに失敗する

List<Integer> even = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

even.removeIf(i -> i % 2 != 0);

System.out.println(even);

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

出題者の意図 - その3

• 問題の Lambda 式には構文上の間違いはありません

• この問題で注目すべきは Arrays.asList(1, 2, ..);

このメソッドは固定サイズのリストを返すので

add / clear / remove

メソッドを 呼び出すと実行時例外

(UnsupportedOperationException)

が発生します。

コードを正しく動作させるためには以下のように修正します。

40

問われているのは

Lambda

式の知識ではない

!?

List<Integer> even = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

even.removeIf(i -> i % 2 != 0);

System.out.println(even);

List<Integer> even = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

よくある質問と回答

• これから資格をとるなら Java SE 8 資格と Java SE 7 資格のどちらがい いですか?

これから学習を始めるのでしたら

Java SE 8

資格をオススメします。

最新技術をキャッチアップしていることを証明できたほうが差別化につながります。

出題トピックが

Java SE 7

資格試験と重複する部分は同じ傾向の問題が出題さ れます。

ただし、全く同じ問題が出題されるわけではありません。

• Silver 試験で出題された Lambda 式や Data and Time API に関するト ピックは、 Gold 試験では出題されませんか?

いいえ。

Gold

試験でも出題されますので、今のうちにしっかり整理しておき

ましょう。

41

ドキュメント内 How to Use the PowerPoint Template (ページ 36-41)

関連したドキュメント