gpt4 book ai didi

java - 在对象上使用自定义方法

转载 作者:行者123 更新时间:2023-12-01 16:37:06 25 4
gpt4 key购买 nike

我创建了一个名为“Writeable”的接口(interface),每个实现它的类都应该重写 returnFilePath 方法 - 它返回一个字符串 - 与该类相关的正确文件路径的路径。例如:

public class PatientRepository extends Observable implements Writeable,Readable{
private static final String filepath="src/files/patients.det";
...
@Override
public String returnFilePath() {
return filepath;
}

正如你所看到的,这个类也扩展了Observable。该类由 FileManager 类观察:

public class FileManager implements Observer {

@Override
public void update(Observable o, Object arg) {
try (OutputStream fileOutputStream = new FileOutputStream(????);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream)){
objectOutputStream.writeObject(arg);
} catch (IOException e) {
e.printStackTrace();
}
}

}

我想要做的是,在 FileOutputStream 构造函数中,我将根据我当前正在处理的对象传递正确的文件路径,但我无法访问我编写的 returnFilePath() 方法。

我应该怎么做才能解决这个问题?

最佳答案

我所要做的就是选角:

public class FileManager implements Observer {

@Override
public void update(Observable o, Object arg) {

try (OutputStream fileOutputStream = new FileOutputStream( ((Writeable)o).returnFilePath());
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream)){
objectOutputStream.writeObject(arg);
} catch (IOException e) {
e.printStackTrace();
}
}

}

关于java - 在对象上使用自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61932045/

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