繁体   English   中英

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

[英]Java: How to create new class object for Reader class from java.io when it has protected constructor

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

读者类描述

Reader myReader = new Reader(); 

不管用。

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

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

你的意思是

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

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

正如其他人所说,您可以创建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的具体子类根据您的要求对其中任何一个进行了分析。 你不是真正的Reader因为它是abstract

的BufferedReader
CharArrayReader
FilterReader
InputStreamReader中
PipedReader
StringReader

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM