话说最近在看泛型的有关知识。
假如我想通过泛型实现加法。适用与int,double等类型。该如何实现?
代码:public class Generic<T1,T2>{
T1 t1;
T2 t2;
T1 sum;
public Generic(T1 a,T2 b){
t1 = a;
t2 = b;

}
public T1 add(){
return t;
sum=t1+t2;//报错,想想也是啊。。两个对象没法相加啊!
}
}
那么能通过神马方法实现类似运算符的功能呢?比如比较大小等通过T1 T2进来的参数都是对象啊……不是能够直接操作的数……顺便问一个白痴幼稚的问题……
java里到底有没有不是对象类型的基础类型?是不是就像Integer是对象,int是基本类型那样?

解决方案 »

  1.   

    这个不可能。
    参见java.lang.Math.max(double, double),java.lang.Math.max(int, int)。。的实现也没做成generic。
      

  2.   

    呃。。那岂不是说有关基础运算的东西泛型都没法搞么话说如果能够静态绑定判断出T1 T2都是数字类型的话应该能用intValue()或者其他函数得到对象内所带有的数值。不过泛型没法做到这个……即使Generic<T1,T2 extends Number>
      

  3.   

    java只有八种基本类型:byte、int、char、long、short、double、float、boolean, 对应的封装类 :Byte、Integer、Character、Long、Short、Double、Float、Boolean
      

  4.   

    恩,我说的是做运算。如果用instanceof这样来做当然可以做。
      

  5.   

    可否加一个中转类型,如Double,然后把泛型的类强转为该类型便可以运算了
      

  6.   

    Java的泛型用处有限,会用就行了,不用拿着锤子到处找钉子。