在调用对象的函数之前,我需要检查对象是否为null,以避免抛出一个NullPointerException.
最好的方法是什么?我考虑过这些方法.
哪一个是Java最好的编程实践?
// Method 1
if (foo != null) {
if (foo.bar()) {
etc...
}
}
// Method 2
if (foo != null ? foo.bar() : false) {
etc...
}
// Method 3
try {
if (foo.bar()) {
etc...
}
} catch (NullPointerException e) {
}
// Method 4 -- Would this work, or would it still call foo.bar()?
if (foo != null && foo.bar()) {
etc...
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Google Play游戏服务API为成就绘制一个图标.
然而,它正在默默地失败.
ImageManager.loadImage用来获取图像,带有OnImageLoadedListenerfor callback(com.google.android.gms.common.images.ImageManager).// Get URI [is valid, exists, is of type png, I checked]
Uri uri = getAchievementIconUri(id);
// Use ImageManager to get the icon image
ImageManager.create(context).
loadImage(new ImageManager.OnImageLoadedListener() {
@Override
public void onImageLoaded(Uri u, Drawable d, boolean r) {
/*
* This code is never reached, no call to onImageLoaded is made!
*/
}
}, uri);
Run Code Online (Sandbox Code Playgroud)