Java:当java.io具有受保护的构造函数时,如何从java.io为Reader类创建新的类对象

时间:2012-09-16 01:30:24

标签: java class constructor protected

我想为java的Reader类创建一个新的类对象,但由于它受到保护,我无法访问构造函数。

Reader Class Description

Reader myReader = new Reader(); 

不行。

通常,我会创建一个新的函数来访问该构造函数的类,但由于该函数是java默认库的一部分,我该如何访问它?谢谢你的帮助。

4 个答案:

答案 0 :(得分:6)

Reader是一个抽象类。您无法实例化它,仅用于创建子类实例。

你的意思是

Reader myReader = new InputStreamReader(in, "UTF-8");

答案 1 :(得分:4)

Reader是一个抽象类,因此您必须实例化它的实现,例如BufferedReaderInputStreamReader

答案 2 :(得分: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

        }};

答案 3 :(得分:1)

如果查看Reader Java Doc,您可以看到Reader的具体子类根据您的要求对其中任何一个进行了分析。你不能实际Reader,因为它是abstract

的BufferedReader
CharArrayReader
FilterReader
InputStreamReader的
PipedReader
StringReader