<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ì)象。

    主站蜘蛛池模板: 国产精品美女午夜爽爽爽免费| 亚洲精品一级无码中文字幕| 97国免费在线视频| 亚洲av日韩精品久久久久久a| 久久久久亚洲精品无码蜜桃| 国产精品亚洲二区在线观看| 成在线人永久免费视频播放| 日韩免费a级毛片无码a∨| 日韩免费电影网站| 精品熟女少妇aⅴ免费久久| 337P日本欧洲亚洲大胆精品| 亚洲性无码一区二区三区| 久久亚洲精品无码aⅴ大香| 久久久无码精品亚洲日韩蜜桃| 国产极品美女高潮抽搐免费网站| 中文字幕在亚洲第一在线| 美女裸免费观看网站| 久久99九九国产免费看小说| 久久香蕉国产线看观看亚洲片| 亚洲av成人片在线观看| 69堂人成无码免费视频果冻传媒| 亚洲一级特黄大片无码毛片| 亚洲中文字幕无码mv| ww4545四虎永久免费地址| 亚洲色欲久久久综合网东京热| 久久久久亚洲精品无码网址色欲| 美女内射毛片在线看免费人动物| 亚洲欧洲精品视频在线观看| 亚洲人成电影网站久久| 亚洲综合色丁香麻豆| 久久久久久亚洲Av无码精品专口 | 中文字幕亚洲电影| mm1313亚洲国产精品美女| 国产亚洲精品免费| 免费国产不卡午夜福在线| 免费一级毛片正在播放| 免费一看一级毛片全播放| 亚洲AV无码乱码在线观看牲色 | 亚洲爆乳少妇无码激情| 亚洲精品无码久久久久YW| 久久水蜜桃亚洲AV无码精品 |