Java 使用不带集合的泛型
假设我有以下几点:Java 使用不带集合的泛型,java,Java,假设我有以下几点: List<Apple> myList = new ArrayList<Apple>(); 可能吗?您正在寻找的 类混合器{ T; 公共作废合并(T参数){ //东西 } } 课堂测试{ 公开作废法(){ blendedApple=新搅拌机(); blendapple.blendIt(新苹果()); BlendedBanana=新搅拌机(); blendBannana.blendIt(新Bannana()); } } 是的,它是: public cla
List<Apple> myList = new ArrayList<Apple>();
可能吗?您正在寻找的
类混合器{
T;
公共作废合并(T参数){
//东西
}
}
课堂测试{
公开作废法(){
blendedApple=新搅拌机();
blendapple.blendIt(新苹果());
BlendedBanana=新搅拌机();
blendBannana.blendIt(新Bannana());
}
}
是的,它是:
public class Blender<T> {
public void blendIt(T arg) { ... }
}
公共类混合器{
公共void blendIt(T arg){…}
}
在Java中,泛型不仅仅用于集合。它是一个通用概念,适用于类、方法等。您可以创建一个泛型类。您可以使用instanceof
操作符检查它是否是Banana
或Apple
的实例。是的,我可以,但是当我把草莓放进搅拌机里的时候,它就会变坏,所以灵活的解决方案是非常有用的required@TomatoMato不客气。:)还要记住,在泛型类的声明中不能使用通配符。i、 例如,类混合器是一个编译器错误:)顺便说一句,不要忘记将答案标记为已接受:)
class Blender<T>{
T t;
public void blendIt(T arg){
//stuff
}
}
class Test {
public void method() {
Blender<Apple> blendedApple = new Blender<Apple>();
blendedApple.blendIt(new Apple());
Blender<Bannana> blendedBannana = new Blender<Bannana>();
blendedBannana.blendIt(new Bannana());
}
}
public class Blender<T> {
public void blendIt(T arg) { ... }
}