[英]Java: How to create new class object for Reader class from java.io when it has protected constructor
I wanted to create a new class object for java's Reader class, but I can't access the constructor since it is protected. 我想为java的Reader类创建一个新的类对象,但由于它受到保护,我无法访问构造函数。
Reader Class Description 读者类描述
Reader myReader = new Reader();
Will not work. 不管用。
Normally, I would create a new function that class to access that constructor, but since the function is a part of java default library, how do I access it? 通常,我会创建一个新的函数来访问该构造函数的类,但由于该函数是java默认库的一部分,我该如何访问它? Thanks for any help. 谢谢你的帮助。
Reader is an abstract class. Reader是一个抽象类。 You cannot instantiate it, only for the purposes of making a subclass instance. 您无法实例化它,仅用于创建子类实例。
Did you mean 你的意思是
Reader myReader = new InputStreamReader(in, "UTF-8");
Reader
是一个抽象类,因此您必须实例化它的实现,例如BufferedReader
或InputStreamReader
。
As others said, you may create a instance of subclass of Reader
, such as BufferedReader
. 正如其他人所说,您可以创建Reader
的子类实例,例如BufferedReader
。
If you don't want to use subclass of Reader, you may create instance of Reader
like below 如果您不想使用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
}};
If you check the Reader Java Doc you can see the concrete subclasses of Reader
intialyze any one of them based on your requirement. 如果您查看Reader Java Doc,您可以看到Reader
的具体子类根据您的要求对其中任何一个进行了分析。 You cannnot instantial Reader
as it is abstract
你不是真正的Reader
因为它是abstract
BufferedReader 的BufferedReader
CharArrayReader CharArrayReader
FilterReader FilterReader
InputStreamReader InputStreamReader中
PipedReader PipedReader
StringReader StringReader
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.