Java有泛型,C++提供了一个非常强大的编程模型template.那么,C++和Java泛型有什么区别?
我试图在Java中创建一个将对数字执行操作的泛型类.在以下示例中,添加如下:
public class Example <T extends Number> {
public T add(T a, T b){
return a + b;
}
}
Run Code Online (Sandbox Code Playgroud)
请原谅我的天真,因为我对Java Generics相对较新.此代码无法编译错误:
对于参数类型T,T,运算符+未定义
我认为通过添加"extends Number",代码将被编译.是否可以执行此Java或是否必须为每种Number类型创建重写方法?
我想创建一个比较数字的方法,但可以有一个输入,它是Number的任何子类.
我看过这样做的方式......
public static <T extends Number> void evaluate(T inputNumber) {
if (inputNumber >= x) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
在我可以执行比较之前,我需要得到实际的灵长类动物,Number类有方法为每个灵长类动物检索这个,但我想要一个干净的方法来选择正确的.
这可能吗?
干杯
我想有一个方法来计算Integer,Double和Float类型的LinkedList的平均值.
问题是sum += i;语句,因为java说没有为Object类型定义+运算符.
我可以进行强制转换,但是如果LinkedList的类型为Float,并且强制转换为Integer,那么我将无法计算正确的均值.
我该怎么办?谢谢.
public double mean (LinkedList<?> l)
{
double sum = 0;
int n = 0;
for (Object i : l)
{
n++;
sum += i;
}
return sum / n;
}
Run Code Online (Sandbox Code Playgroud)