3

Java の Reader クラスの新しいクラス オブジェクトを作成したかったのですが、保護されているためコンストラクターにアクセスできません。

リーダー クラスの説明

Reader myReader = new Reader(); 

動作しないでしょう。

通常、そのコンストラクターにアクセスするクラスの新しい関数を作成しますが、関数は Java デフォルト ライブラリの一部であるため、どのようにアクセスすればよいでしょうか? 助けてくれてありがとう。

4

4 に答える 4

6

Reader は抽象クラスです。サブクラスのインスタンスを作成する目的でのみ、インスタンス化することはできません。

もしかして

Reader myReader = new InputStreamReader(in, "UTF-8");
于 2012-09-16T01:32:02.250 に答える
4

ReaderBufferedReaderは抽象クラスであるため、またはなどの実装をインスタンス化する必要がありますInputStreamReader

于 2012-09-16T01:32:36.383 に答える
3

他の人が言ったように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

        }};
于 2012-09-16T02:06:02.120 に答える
1

Reader Java Docを確認するReaderと、要件に基づいて intialyzeの具体的なサブクラスが表示されます。Readerそのままではインスタントできませんabstract

BufferedReader CharArrayReader
FilterReader InputStreamReader
PipedReader StringReader


于 2012-09-16T03:33:23.177 に答える