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