它可能是Question1或Question2的复制品,但对我来说,它仍然不清楚。他们说,只有19API支持try-with-resources,但that question并非如此。
我已经用Realm自己测试过了。
boolean isClosed = RealmManager.isClosed(); //false here
try (Realm realm = RealmManager.getRealm()) {
realm.executeTransaction(r -> r.where(User.class).findAll());
} catch (Exception ex) {
ex.printStackTrace();
}
isClosed = RealmManager.isClosed(); //true here
public static boolean isClosed() {
return realm == null || realm.isClosed();
}它在22个api (真实电话)和16个api (模拟器)上运行良好。那么,在大多数手机上,这个代码块在19版本之前的api上会工作得很好吗?
我使用Retrolabmda。
Gradle配置:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}发布于 2017-08-30 13:57:02
您可以使用Android Studio 3.0在所有API级别使用try-with-resources:
Android Studio3.0预览版1和更高版本将support for try-with-resources扩展到所有Android API级别的。
此外,您还需要在代码块中添加注释@SuppressLint("NewApi"),以便在应用程序接口级别< 19的情况下隐藏警告。但是,在此annotation is not applicable的情况下,您可以忽略警告,构建和运行您的应用程序,即使try-with-resources代码块突出显示为error。
https://stackoverflow.com/questions/45948628
复制相似问题