我这个场景用泛型还是继承合适呢 我这个场景用泛型还是继承合适呢一个实体A,有一个列表,列表元素是很多大同小异的类型B1 B2 B3class A<T>{List<T>}还是这样好class A{List<B>}B是B1 B2 B3的父类这两种实现什么区别呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 假设你用继承方式class A { List<B> list}使用的结果是,在你的应用中,总是要 cast 类型到子类 B1,B2,B3。那你就最好改用 class A<T> 的方法。也就是说,B1,B2,B3 子类的差距大小,决定你的选择。子类差距越大,越有特殊性,越应该选择 A<T> 的方法;极端的情况,如果差距大到没有父类(或父类只能是Object),那你只有用 A<T> 的方法。如果子类差距小,不需特殊对待,可用A,List<B> 的方式。 从OOP来说,使用接口B抽象B1 B2 B3,满足面向接口编程。从泛型来说,使用List<B>来约束List中内容的类型保证安全性。所以如果B1 B2 B3能抽象出接口B的话,当然要使用第二种方法。 初学菜鸟一个简单的问题。。。 如何替换 title=abcd 为了 title="abcd" 关于连接池调用proxy管理close()等方法时的问题 有关Class.forName()的问题? 关于数组的问题 为何我在一个JPanel中加入一个JPanel后第一个JPanel的宽度就变大了 java中有没有延迟函数,就像c中的delay,可以延迟程序的执行 如何更新 有谁知道UltraEdit9.10的注册码。马上给分!!!! 一个有关Sevelet的问题 知道问题所在,不知为什么,请问怎么改? java Runtime.exec();
class A {
List<B> list
}使用的结果是,在你的应用中,总是要 cast 类型到子类 B1,B2,B3。
那你就最好改用 class A<T> 的方法。也就是说,B1,B2,B3 子类的差距大小,决定你的选择。子类差距越大,越有特殊性,越应该选择 A<T> 的方法;极端的情况,如果差距大到没有父类(或父类只能是Object),那你只有用 A<T> 的方法。如果子类差距小,不需特殊对待,可用A,List<B> 的方式。
从泛型来说,使用List<B>来约束List中内容的类型保证安全性。所以如果B1 B2 B3能抽象出接口B的话,当然要使用第二种方法。