Есть ли хороший способ использовать try-with-resources при открытии InputStream
в конструкторе, а затем передать это супер-конструктору?
В основном я хочу сделать следующее:
public class A {
public A(InputStream stream) {
// Do something with the stream but don't close it since we didn't open it
}
}
public class B {
public B(File file) {
// We open the stream so we need to ensure it properly closed
try (FileInputStream stream = new FileInputStream(file)) {
super(new FileInputStream(file));
}
}
}
Но, конечно, поскольку super
должен быть первым утверждением в конструкторе, это недопустимо. Есть ли хороший способ достичь этого?