Java の Reader クラスの新しいクラス オブジェクトを作成したかったのですが、保護されているためコンストラクターにアクセスできません。
Reader myReader = new Reader();
動作しないでしょう。
通常、そのコンストラクターにアクセスするクラスの新しい関数を作成しますが、関数は Java デフォルト ライブラリの一部であるため、どのようにアクセスすればよいでしょうか? 助けてくれてありがとう。
Java の Reader クラスの新しいクラス オブジェクトを作成したかったのですが、保護されているためコンストラクターにアクセスできません。
Reader myReader = new Reader();
動作しないでしょう。
通常、そのコンストラクターにアクセスするクラスの新しい関数を作成しますが、関数は Java デフォルト ライブラリの一部であるため、どのようにアクセスすればよいでしょうか? 助けてくれてありがとう。
Reader は抽象クラスです。サブクラスのインスタンスを作成する目的でのみ、インスタンス化することはできません。
もしかして
Reader myReader = new InputStreamReader(in, "UTF-8");
Reader
BufferedReader
は抽象クラスであるため、またはなどの実装をインスタンス化する必要がありますInputStreamReader
。
他の人が言ったようにReader
、 などの のサブクラスのインスタンスを作成できますBufferedReader
。
Reader のサブクラスを使用したくない場合はReader
、以下のようなインスタンスを作成できます。
Reader reader = new Reader() {
@Override
public int read(char[] cbuf, int off, int len) throws IOException {
// TODO Auto-generated method stub
return 0;
}
@Override
public void close() throws IOException {
// TODO Auto-generated method stub
}};
Reader Java Docを確認するReader
と、要件に基づいて intialyzeの具体的なサブクラスが表示されます。Reader
そのままではインスタントできませんabstract
BufferedReader CharArrayReader
FilterReader InputStreamReader
PipedReader StringReader