質問するログイン新規登録

回答編集履歴

1

もう一つのエラーの原因

2015/08/29 22:41

投稿

swordone
swordone

スコア20675

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