我正在尝试编写一个程序,该程序接受与DataSet类可比较的类型,以便它可以找到最大值和最小值。唯一的问题是我既不能编译任何一个,也对如何解决错误感到困惑。谢谢
DataSet.java:
public class DataSet<T implements Comparable>
{
private T maximum;
private T least;
private int count;
public void add(T x)
{
if(count == 0){
least = x;
maximum = x;
}
else if(least.compareTo(x) > 0)
least = x;
else if(maximum.compareTo(x) < 0)
maximum = x;
count++;
}
public T getMaximum()
{
return maximum;
}
public T getLeast()
{
return least;
}
}
错误:
java:5: error: '(' or '[' expected
DataSet<String> ds = new DataSet<String>;
^
1 error
可比:
public interface Comparable
{
public int compareTo(Object other);
}
这里没有错误
public class DataSetTester
{
public static void main(String[] args)
{
DataSet<String> ds = new DataSet<String>;
ds.add(man);
ds.add(woman);
System.out.println("Maximum Word: " + ds.getMaximum());
}
}
错误:
java:5: error: '(' or '[' expected
DataSet<String> ds = new DataSet<String>;
^
最佳答案
当心缺失的偏执症:
DataSet<String> ds = new DataSet<String>();
另外,您正在使用“implements”关键字。对于泛型,应使用扩展关键字。因此,它应显示为:
public class DataSet<T extends Comparable<T>>
传递字符串参数时,还会缺少“”:
DataSet<String> ds = new DataSet<String>();
ds.add("man");
ds.add("woman");
这些错误中的大多数都是微不足道的,您应该尝试多做一些练习以理解该语言。同样,来自编译器的错误消息也应该有所帮助。
关于java - 编译Java程序时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9449498/