我是一个跟踪东西及其主人的课程
public class Record<S,O> { //S - generic stuff, O - generic owner
HashSet<S> allStuffs;
HashMap<S, O> whoOwnsWhat;
//
}
如何强制S必须是某个类/接口的子类。
谢谢。
编辑:
我将Record修改为“class Record<Stuff,O>"
,其中Stuff是一个抽象类,并得到一个警告”类型参数Stuff正在隐藏类型Stuff。“
public class <S extends Stuff> Records<S,O>
也会收到投诉请求。
答案 0 :(得分:3)
public <S extends CharSequence> S foo(S s){
return null;
}
类S
必须扩展(是CharSequence
的子类)的状态。
答案 1 :(得分:2)
有一些extends和super关键字来定义Java泛型的边界。
public class Record<S extends fooClassName,O> {
HashSet allStuffs(fooClassName arg); // do not "override" S by putting S HashSet<S> allStuffs;
HashMap whoOwnsWhat (fooClassName arg1, O arg2);
}
答案 2 :(得分:0)
我确信我们可以将父类或接口设置为set或map的键或值。 通过这样做,所有子类和实现的接口类都可以插入到set或map中。
HashMap<SuperClass, Interface>