gpt4 book ai didi

java - Java 中文件的 nullobject

转载 作者:行者123 更新时间:2023-11-30 05:16:15 25 4
gpt4 key购买 nike

我有一个类,偶尔会为 File 对象传递 null 。在正常操作期间,它使用 Scanner 类来解析文件。

我认为我可以将 File 替换为 nullobjects(Gang of四种风格)。

但是,看起来 File 并不是真正设计用于扩展的。有人知道如何执行此操作吗?

最佳答案

您可以将使用该文件的对象替换为 NullObject

例如,您可以使用 NullInputStream 并将其传递给扫描仪。

之前:

 public void whatever( File f ) { 

Scanner scanner = new Scanner( f );

...
}

之后

 public void whatever( File f ) { 

Scanner scanner = new Scanner( getInputStreamFrom( f ) );

...
}

并实现该方法,如下所示:

 private final InputStream getInputStreamFrom( File f ) {

if( f == null && !f.exists() ) {
return NullInputStream.instance;
}

return new InputStream( new FileInputStream( f ) );

}


class NulllInputStream extends InputStream {

private final static NullInputStream instance = new NullInputStream();

private NullInputStream() {
}

public int read() {
return -1;
}
.... other relevant methods here...
}

显然编码很仔细,而且不是在 3 分钟内完成的。正如我所做的:) :) :)

关于java - Java 中文件的 nullobject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1128387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com