java 模板类型_如何通过限制允许的类型集来定义模板类,并在Java中引用这些类型的集合?...

最好为您关心的每种类型创建具体的实现.

interface Foo{

public T getValue();

public void setValue(T value);

}

class IntFoo implements Foo{...}

class CharFoo implements Foo{...}

class DoubleFoo implements Foo{...}

interface Bar{

Collection> getAllFoo();

}

?允许集合包含任何类型的Foo对象.当您引用Foo时,仍然会丢失通用类型,但是没有很好的方法来解决.

除了拥有通用的基类,这样做确实没有任何优势.如果每个Foo都能达成共识,那么我将这样做:

abstract class Foo{

T value;

T getValue(){

return value;

}

void setValue(T value){

this.value=value;

}

// return whatever is appropriate for all implementations

abstract Object baz();

}

class IntFoo implements Foo{

Object baz(){

return null // something useful;

}

}

Collection> foos = bar.getAllFoo();

for(Foo> foo:foos){

foo.baz();

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值