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

Reader是一个抽象类,因此您必须实例化它的实现,例如BufferedReaderor 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 DocReader ,您可以根据您的要求查看 intialyze 任何一个的具体子类。Reader你不能按原样即时abstract

BufferedReader
CharArrayReader
FilterReader
InputStreamReader
PipedReader
StringReader

于 2012-09-16T03:33:23.177 回答