第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

返回類子類型的Java方法(不是實例,類本身)

返回類子類型的Java方法(不是實例,類本身)

縹緲止盈 2021-05-12 13:13:40
我有一個類BaseViewHolder,它是基類和它的子類MyViewHolder。我有一個不同的抽象類,BaseAdapter它需要子類來實現(xiàn)返回的子類的方法BaseViewHolder。我試過了:protected abstract <T extends BaseViewHolder > Class<T> getViewHolderClass();然后,創(chuàng)建一個class MyAdapter,它是它的子類,BaseAdapter并實現(xiàn)該getViewHolderClass方法:@Overrideprotected <T extends BaseViewHolder > Class<T> getViewHolderClass() {    return MyViewHolder.class;}但是我得到了:Incompatible types.Required: Class<T>Found: Class<path.to.my.package.MyViewHolder>如何使getViewHolderClass返回一類是或源自 BaseViewHolder(避免不必要的鑄造更一般的類別或者?,當然)?我在StackOverflow上找到的最接近的方法是:如何使方法返回類型通用?但這涉及返回類實例,而我正試圖返回一個類本身。
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

您需要使用?通配符。


@Override

protected Class<? extends BaseViewHolder> getViewHolderClass() {

    return MyViewHolder.class;

}


查看完整回答
反對 回復 2021-05-26
?
楊魅力

TA貢獻1811條經(jīng)驗 獲得超6個贊

getViewHolder方法不需要通用,可以返回Class<? extends BaseViewHolder>。

代碼無法編譯的原因是返回類型始終為,盡管通用方法簽名暗示可以,但返回類型Class<MyViewHolder>不允許像這樣的調(diào)用adapter.<AnotherViewHolder>getViewHolder()


查看完整回答
反對 回復 2021-05-26
?
開滿天機

TA貢獻1786條經(jīng)驗 獲得超13個贊

你需要指定MyAdapter的T為MyViewHolder:


public class MyAdapter extends BaseAdapter<MyViewHolder> {


    @Override

    protected Class<MyViewHolder> getViewHolderClass() {

        return MyViewHolder.class;

    }


    // Other methods...


查看完整回答
反對 回復 2021-05-26
  • 3 回答
  • 0 關注
  • 274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號