你想在一个新的项目中使用,或在现有的项目上把非泛型的类型转换成它们的泛型表示。但是,你却不知道自己为什么想这样做,并且你也不知道哪些非泛型类型应该被转换成它们的泛型表示。
解决方法:
决定何时何地使用泛型,你需要考虑以下几件事:
l
你的类型将包含或者以多种不确定的数据类型来运行吗?如果是这样,那么创建一个泛型将比创建一个非泛型提供很多好处。如果你的类型将只以一种确定的类型运行,那么你就没必要去创建一个泛型了。
l
如果你的类型是值类型,那么就会发生装箱和拆箱操作,你应该考虑使用泛型去避免这些操作。
l
跟泛型关联的强类型检查会导致很快就检查到错误(比如在编译时,而不是在运行时),因此,缩短你的纠错周期。
l
随着你要写好几个类去处理不同的数据类型的运行(比如一个ArrayList只保存StreamReaders,而另一个则只保存StreamWriters),你的代码是否受到“臃肿”的困扰?泛型很容易做到只写一次代码,就可以实现运行每种类型进行工作。
l
泛型会得到非常清晰的代码。去除代码的臃肿,对你的类型强制使用强类型检查,你的代码会更容易阅读和理解。
讨论:
在大部分情况,你的代码都是适合使用泛型的。泛型会产生更高的代码重用,更好的性能,强类型检查和易读的代码。