最大数量的通用代码

时间:2017-03-12 06:03:19

标签: java

import java .util.*;
import java.io.*;
class MaxIt<T extends Number >
    {
   T x;
 public T maxi(T a,T b)
  {
    if(a>b)
        return a;
    else
        return b;
  }
}
public class MaxGen{
     public  static void main(String[] args)
 {

    MaxIt<Integer> i=new MaxIt<Integer>();
    System.out.println("enter two integer ");
    int a,b;
    Scanner sc=new Scanner(System.in);
    a=sc.nextInt();
    b=sc.nextInt();
    System.out.println(a,b);

} }

我正在阅读关于泛型的内容,所以我试图制作一个通用程序来查找最多两个数字但是当我编译它时它给了我一个错误说 - 二进制运算符的坏操作数类型&#39;&gt ;&#39 ;. 你可以告诉我这段代码有什么问题吗?

1 个答案:

答案 0 :(得分:1)

您应该使用Comparable,并且您可以创建方法static,它可能需要可变数量的参数。像,

public static <T extends Comparable<? super T>> T maxi(T... vals) {
    if (vals == null || vals.length == 0) {
        return null;
    }
    T m = vals[0];
    for (int i = 1; i < vals.length; i++) {
        if (m.compareTo(vals[i]) < 1) {
            m = vals[i];
        }
    }
    return m;
}

然后你需要实际调用它。像,

System.out.println(maxi(a,b));