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

java抽象类泛型_Java抽象类使用泛型实现(Java abstract class Implementing with generics)Ihaveanabstractclasswithgeneric(T1)thatextendsmyFilterableinterface:publicabstractclassAbstractAdapter<T1extendsFilterable,T2extendsAbstractAdapter.Cell>extendsArrayAdap…

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?

今天的文章java抽象类泛型_Java抽象类使用泛型实现(Java abstract class Implementing with generics)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33785.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注