java抽象类泛型_Java抽象类使用泛型实现(Java abstract class Implementing with generics)

I have an abstract class with generic (T1) that extends my Filterable interface:

public abstract class AbstractAdapter < T1 extends Filterable, T2 extends AbstractAdapter.Cell > extends ArrayAdapter < T1 > {

public abstract class Cell {

public T1 info;

//...

}

public abstract void setData(T2 cell, int position);

//...

}

And i have concrete class with method (setData) and Cell class implementations:

public class ConcreteAdapter extends AbstractAdapter < InfoClass, ConcreteAdapter.Cell > {

public class Cell extends AbstractAdapter.Cell {

//...

}

@Override

public void setData(Cell cell, int position) {

InfoClass info = (InfoClass)cell.info; // need to cast from Filterable to InfoClass (why?). Or i have compilation error

}

//...

}

So, i have ConcreteAdapter class with first generic class as InfoClass (that extends Filterable), in method setData i have Cell class object, but field "info" i see just as Filterable, not InfoClass. I think, field "info" already should be as generic type, because it declared as

T1 info;

but not

Filterable info;

Is it possible change field type from extendable to generic class without cast? Or its a bug in IDE?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值