I try to use a class member as a resource in the try block (Because that resource needs to call close() after try block):
class Manager {
MyResource m_myResource;
...
void doTraining() {
m_myResource = createMyResource();
try(m_myResource) {
...
}
}
}
But there will be a complain saying that m_myResource
is not effective final. Why? I think m_myResource
is not changed after initialization. Anyway, not sure how to fix this issue. One way I can think of is:
class Manager {
MyResource m_myResource;
...
void doTraining() {
MyResource newResource = createMyResource();
m_myResource = newResource;
try(m_myResource) {
...
}
}
}
But I am not sure if assigning the local resource to class member could cause any problem?