<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢(mèng)蝶

    生活、程序、未來
       :: 首頁(yè) ::  ::  :: 聚合  :: 管理

    方法簽名,泛型濫用?

    Posted on 2009-05-24 20:05 dennis 閱讀(2195) 評(píng)論(5)  編輯  收藏 所屬分類: java

        最近遇到一個(gè)選擇題,在xmemcached中,get方法原來的簽名是這樣的:
    public Object  get(final String key) throws TimeoutException,InterruptedException,MemcachedException;
        那么用戶使用的時(shí)候,需要自己轉(zhuǎn)型,也就是這樣

    String value=(String)client.get("key");

        后來我將get方法的簽名改成了泛型方法,xmemcached幫你做這個(gè)轉(zhuǎn)型工作,
    public <T> T get(final String key) throws TimeoutException,InterruptedException, MemcachedException;

        方法的實(shí)現(xiàn)因?yàn)橛辛藗€(gè)轉(zhuǎn)型,不得不加上抑制警告,
        @SuppressWarnings("unchecked")
        
    public final <T> T get(final String key) throws TimeoutException,
                InterruptedException, MemcachedException {
            
    return (T) get(key, DEFAULT_OP_TIMEOUT);
        }
        這樣用戶使用的時(shí)候,就不需要顯式轉(zhuǎn)型,而是xmemcached幫你做了,
    String value=client.get("key");
        后來,我仔細(xì)想了這個(gè)問題,盡管這里使用了泛型方法,似乎簡(jiǎn)化了用戶的工作,然而卻丟掉了編譯警告,抑制警告讓用戶可能忽略這里可能的轉(zhuǎn)型失敗,這與泛型的初衷似乎不符。可是,另一個(gè)觀點(diǎn)冒出來支持我,用戶往memcached存進(jìn)去一頭大象,他(她)不會(huì)希望取出來的時(shí)候變成驢子,我們幫他做這個(gè)轉(zhuǎn)型工作可以讓用戶使用起來更簡(jiǎn)便。你怎么看呢?
        
         


    評(píng)論

    # re: 方法簽名,泛型濫用?  回復(fù)  更多評(píng)論   

    2009-05-24 23:23 by megan
    學(xué)習(xí)了,
    我覺得忠于用戶感受是最重要的。

    # re: 方法簽名,泛型濫用?  回復(fù)  更多評(píng)論   

    2009-05-25 19:30 by ecbeta
    這個(gè)似乎有點(diǎn)問題. 因?yàn)槟阌幸粋€(gè)方法是需要轉(zhuǎn)型的,那為什么那個(gè)方法不是泛型的呢?

    # re: 方法簽名,泛型濫用?  回復(fù)  更多評(píng)論   

    2009-06-07 01:35 by cast
    try this:

    public final <T> T get(final String key, Class<T> clz) throws TimeoutException,
    InterruptedException, MemcachedException {
    return clz.cast(get(key, DEFAULT_OP_TIMEOUT));
    // if it is not T type, it will raise ClassCastException in cast() method.
    }

    # re: 方法簽名,泛型濫用?  回復(fù)  更多評(píng)論   

    2009-06-07 07:14 by dennis
    是的,這是個(gè)辦法,然后這與讓用戶自己轉(zhuǎn)型沒有多大區(qū)別,用戶還是傳入一個(gè)額外的參數(shù),反而更麻煩。

    # re: 方法簽名,泛型濫用?[未登錄]  回復(fù)  更多評(píng)論   

    2011-07-15 12:39 by Jeff
    個(gè)人覺得這里還是不要范型的好。
    作為一個(gè)基礎(chǔ)接口,此處存的對(duì)象千奇百怪,調(diào)用者更應(yīng)該負(fù)責(zé)將對(duì)象cast回自己所需要的對(duì)象,因?yàn)樗约罕仨毭靼鬃约涸?jīng)放了什么對(duì)象。

    主站蜘蛛池模板: 免费一级毛suv好看的国产网站| 四虎影库久免费视频| 91成人免费观看在线观看| 亚洲中文字幕无码久久| 亚洲网址在线观看| 亚洲乱亚洲乱妇无码麻豆| 啊v在线免费观看| 免费无码一区二区三区蜜桃大| 狼群影院在线观看免费观看直播| 中文字幕日本人妻久久久免费 | 一色屋成人免费精品网站| 国产精品免费AV片在线观看| 全部在线播放免费毛片| 亚洲av日韩精品久久久久久a | 永久在线免费观看| 成人性做爰aaa片免费看| 人妻巨大乳hd免费看| 日韩色日韩视频亚洲网站 | 国拍在线精品视频免费观看 | 久久精品亚洲AV久久久无码| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品成人无码中文毛片不卡| 亚洲无码视频在线| 亚洲国产婷婷香蕉久久久久久 | 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 久久不见久久见免费影院www日本 久久WWW免费人成—看片 | 久久久99精品免费观看| 不卡视频免费在线观看| aaa毛片免费观看| 免费a级毛片无码a∨免费软件| 久久久久国色AV免费观看| 一级有奶水毛片免费看| 成人无码区免费A∨直播| a级毛片视频免费观看| 日韩免费高清播放器| 日本免费电影一区二区| 久久国产高潮流白浆免费观看| 91香蕉国产线在线观看免费| 84pao强力永久免费高清| 99久久精品日本一区二区免费| 色妞WWW精品免费视频 |