This question already has answers here:
Why is java.io.FileDescriptor's constructor public?
(2个答案)
5年前关闭。
我正在研究Java的API,想知道是否存在使用类的构造函数创建
API指定构造的对象无效。谢谢。
...输出...
类java.io.FileDescriptor
...正如人们所期望的;但这当然不是特别有用–对于一个对象,希望将其用作文件描述符。
最重要的是,除开头发外,最好遵循文档的建议。
(2个答案)
5年前关闭。
我正在研究Java的API,想知道是否存在使用类的构造函数创建
FileDescriptor
对象的用例-换句话说:FileDescriptor newFileDescriptor = new FileDescriptor();
API指定构造的对象无效。谢谢。
最佳答案
不,我还没有遇到这样的用例。FileDescriptor
documentation非常清楚,尽管您可以直接构建FileDescriptor
,但您不应:
文件描述符类的实例用作以下对象的不透明句柄:
表示打开文件的基础机器特定结构,
一个开放的套接字,或另一个字节的源或宿。主要实用
文件描述符的用途是创建FileInputStream或
FileOutputStream包含它。应用程序不应创建其
自己的文件描述符。
注意最后一句话:应用程序不应创建自己的文件描述符。FileDescriptor()
documentation进一步说明(如您所知):
构造一个(无效的)FileDescriptor对象。
因此,newFileDescriptor.valid()
将返回false
。
话虽如此,如果直接构造一个FileDescriptor
,那么从一般意义上讲它肯定是有效的Java对象。例如,以下代码...
FileDescriptor newFileDescriptor = new FileDescriptor();
System.out.println(newFileDescriptor.getClass());
...输出...
类java.io.FileDescriptor
...正如人们所期望的;但这当然不是特别有用–对于一个对象,希望将其用作文件描述符。
最重要的是,除开头发外,最好遵循文档的建议。
09-08 02:54