请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

对TokenCache类中CacheLoader返回"null"的疑惑

请问老师,5.4中,不是很明白把CacheLoader中的Load的返回值的null改成字符串"null"的意义,使用null的话,使用null == value?作判断不是一样么,还有就是,使用字符串"null".equals作判断,然后又返回null对象,不是没有意义么,我把代码改成这样,是不是效果一样,谢谢老师。

图片为视频中的代码

https://img1.sycdn.imooc.com/szimg//5932fe400001384906890411.jpg

下面为我改成的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class TokenCache {
    private static Logger logger = LoggerFactory.getLogger(TokenCache.class);
 
    private static LoadingCache<String,String> localCache = CacheBuilder.newBuilder()
            .initialCapacity(1000)
            .maximumSize(10000)
            .expireAfterAccess(12, TimeUnit.HOURS)
            .build(new CacheLoader<String, String>() {
                @Override
                public String load(String key) throws Exception {
                    return null;
                }
            });
 
    public static void setKey(String key,String value){
        localCache.put(key,value);
    }
 
    public static String getKey(String key){
        try {
            return localCache.get(key);
        catch (Exception e) {
            logger.error("localCache get error",e);
        }
        return null;
    }
}


正在回答

插入代码

1回答

hi 同学,我非常理解你的想法,首先给你一个大大的赞~~这块为什么改成这样,是因为

@Override

                public String load(String key) throws Exception {

                    return null;

                }


在这个位置,当时编码测试的时候返回null的时候,并且这个key不存在的时候,会报一个guava内部的一个异常,为了避免这种异常。当时改成那样的,你改的是没有问题的,和之前的版本一样,然后同学再自测一下,看看能否通过,再次赞一下这位同学,非常棒棒哒!

0 回复 有任何疑惑可以回复我~
  • 提问者 何智B先生 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-06-04 14:43:10
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号