我在Java中遇到一种情况,我有一个返回InputStream的方法,并且我想这样做,以便每当人们调用该InputStream上的关闭函数时,代码中的其他地方就会收到通知(例如回调) )。
但是,我返回的实际 InputStream 是库调用返回的 InputStream 的子类,因此我无法直接控制它。
我当前的解决方案是创建一个InputStream的子类,它有一个InputStream成员变量,该变量由构造函数中的库调用实例化,我只是重写InputStream的方法,让它们使用该变量的方法,另外 close() 函数做了一些额外的事情。
这可行,但我想减少必须创建一个全新类的开销,重写所有必要的方法,这样我就可以在调用 close() 时执行单个事件。
最佳答案
Apache Commons IO有多种过滤 I/O 流,可以更轻松地执行您所描述的操作。
关于java - Java 中带有 "events"的输入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13169206/