回答編集履歴
1
もう一つのエラーの原因
answer
CHANGED
@@ -1,2 +1,17 @@
|
|
1
1
|
お使いのJavaのバージョンを確認してください.
|
2
|
-
そのコードから推測するに,お使いの本はJava7以上を想定しています.
|
2
|
+
そのコードから推測するに,お使いの本はJava7以上を想定しています.
|
3
|
+
---
|
4
|
+
|
5
|
+
で,実はこのコード,と言うかプロジェクトにまだ問題があります.
|
6
|
+
結論を先に言うと,**同じパッケージ内にある自作のAutoCloseableを削除してください.**
|
7
|
+
|
8
|
+
この中のcloseSilentlyメソッドを使ってる2箇所と,closeSilentlyの中のcloseメソッドに赤線が出てますね?
|
9
|
+
この原因が,プロジェクト内で作っているAutoCloseableにあります.
|
10
|
+
教科書に書いている「AutoCloseableを実装している」というのは,
|
11
|
+
ここで使っているFileReaderやBufferedReaderが[java.lang.AutoCloseable](https://docs.oracle.com/javase/jp/8/api/java/lang/AutoCloseable.html)を実装しているということです.
|
12
|
+
自分でAutoCloseableをパッケージchapter08に作成したことによって,
|
13
|
+
closeSilentlyメソッドの仮パラメータであるAutoCloseableが
|
14
|
+
**chapter08.AutoCloseableを指してしまっています**.
|
15
|
+
java.lang.AutoCloseableとchapter08.AutoCloseableには関係がないので引数として渡せませんし,
|
16
|
+
おそらくchapter08.AutoCloseableにcloseメソッドがないため,引数に対してcloseメソッドを実行することもできません.
|
17
|
+
なのでこの自作のAutoCloseableを削除してください.
|