回答編集履歴

1

もう一つのエラーの原因

2015/08/29 22:41

投稿

swordone
swordone

スコア20651

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を削除してください.