我继承有点J2ME代码,其中一个单一的类中有以下两种方法:

public DataOutputStream getOutputStream(String filePath) throws IOException
{
    return Connector.openDataOutputStream(filePath);
}


public DataOutputStream createOutputStream(String filePath) throws IOException
{
    FileConnection fc = (FileConnection)Connector.open(filePath);

    if(fc.exists())
        return fc.openDataOutputStream();
    else
        fc.create();
    return fc.openDataOutputStream();
}

据我所知,这两种方法做同样的事情。奇怪的是,该方法是正确的类彼此相邻,这意味着谁把它们放在那里知道他们在做什么。

是这些方法基本上是相同的?我可以摆脱他们中的一个吗? (或者可能是两个,想着它)。

有帮助吗?

解决方案

在我看来,这getOutputStream将抛出一个异常,如果该文件不存在。

您只能摆脱它,如果没有一个依赖于这种行为。

在这种情况下通常的重构将有一个附加的布尔参数createOutputStream让它知道,如果它不存在是否应该创建该文件。

其他提示

FileConnector可用在可选包而已,所以你不能依靠它的存在。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top