小编Art*_*shL的帖子

在Java中检查空值的最佳方法是什么?

在调用对象的函数之前,我需要检查对象是否为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)

java null nullpointerexception

30
推荐指数
7
解决办法
10万
查看次数

Android gms ImageManager永远不会加载图像

我正在尝试使用Google Play游戏服务API为成就绘制一个图标.
然而,它正在默默地失败.

方法/问题:

  • 成功检索图像的URI,存在且有效.
  • ImageManager.loadImage用来获取图像,带有OnImageLoadedListenerfor callback(com.google.android.gms.common.images.ImageManager).
  • 但是从不调用onImageLoadedListener的方法onImageLoaded.
  • 没有错误,没有证据,只是完全被忽略,我甚至等了10分钟以防万一.

码:

// 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)

io android google-play-services google-play-games

2
推荐指数
1
解决办法
361
查看次数