我从课本上抄了一个例子,但它拒绝编译。我是不是在什么地方打错了?出于某种原因,在客户端代码中,collections.sort(words)不允许程序编译。任何帮助都很感激。代码复制自Stuart Reges和Marty Stepp的“构建Java程序”第二版。我正试图通过复制来理解它。
该程序应该将一个CalendarDate对象装入一个ArrayList中。通过实现CalendarDate的可比接口,我可以使用Collections.sort按ArrayList中的顺序对生日进行排序。但是,这不起作用的B/C集合。sort(dates)将不会运行。
import java.util.*;
// Short program that creates a list of birthdays of the
// first 5 U.S. Presidents and that puts them into sorted order.
// We can now use Collections.sort for ArrayList<CalendarDate> b/c CalendarDate implements the Comparable interface.
public class CalendarDateTest {
public static void main(String[] args) {
ArrayList<CalendarDate> dates = new ArrayList<CalendarDate>(); // Creates a new ArrayList of 'CalendarDate' object type.
// adds a new CalendarDate object with month = 2 and day = 22 into an element of ArrayList dates, and etc.
dates.add(new CalendarDate(2, 22)); // Washington
dates.add(new CalendarDate(10, 30)); //Adams
dates.add(new CalendarDate(4, 13)); // Jefferson
dates.add(new CalendarDate(3, 16)); // Madison
dates.add(new CalendarDate(4, 28)); // Monroe
System.out.println("birthdays = " + dates); // Before sorting
Collections.sort(dates); // WHY WON'T THIS WORK?
System.out.println("birthdays = " + dates); // After Sorting
}
}
public class CalendarDate implements Comparable<CalendarDate> {
private int month;
private int day;
// Constructor
public CalendarDate(int month, int day) {
this.month = month;
this.day = day;
}
// Compares this calendar date to another date
// Dates are compared by month and then by day
public int compareTo(CalendarDate other) {
if (month != other.month) { // If different months
return month - other.month; //negative, positive, or zero
} else { // If same months; compare days instead
return day - other.day; // negative, positive, or zero
}
}
// Accessor for month (b/c month is private)
public int getMonth() {
return this.month;
}
// Accessor for day (b/c day is private)
public int getDay() {
return this.day;
}
// A toString method
public String toString() {
return month + "/" + day;
}
}
public interface Comparable<T> { // T is the generic type (a placeholder for when other classes implement this)
public int compareTo(T other); // placeholder to be implemented; need more specific version into class implementing this.
}
编译器错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Bound mismatch: The generic method sort(List<T>) of type Collections is not applicable for the arguments (ArrayList<CalendarDate>). The inferred type CalendarDate is not a valid substitute for the bounded parameter <T extends Comparable<? super T>>
at CalendarDateExample.CalendarDateTest.main(CalendarDateTest.java:21)
不要定义自己的可比
接口。您需要实现
java.lang.carable
。
当用户键入以下内容的答案时:system.out.println(“键入数字”); 它不会继续到我的代码的下一部分。
我正在运行这样一个简单的SQL连接和select,但在运行查询时,我遇到了非常奇怪的错误。 警告:mysqli_fetch_array()希望参数1是mysqli_结果,布尔值在第23行的C:\xampp\htdocs\Webmaster\run\forum_mc.php中给出 警告:mysqli_query():第24行()上C:\xampp\htdocs\Webmaster\run\forum
预计此函数将无法typeCheck。然而,没有解释发生这种情况的原因。在GHCI中试用时,我得到了以下输出: 为什么会出现这种情况?
奇怪的是,标记为“OK”的行编译得很好,但标记为“Error”的行失败了。它们看起来基本上是一样的。
通常,当我只对参数化对象进行排序时,它会完美地预成型,但是当我添加没有数据的对象时,它就会发疯。帮助。 顺便说一句,我想要按降序排序的数据,由“Stanje na racunu”排序,或者用英语“你的账户余额”排序,它接受对象类中的“stanje”变量并对其进行比较。我将再次重复。当tr1、tr2和tr3不包括在内时,这是完美的。帮助 结果如下。 所需的输出是(不是完整的,只有名称(vlasnik
列表声明: 在代码的某个地方,我试图在这个列表上运行for循环: 这对我来说不太清楚。为什么我需要加上“;;”?我也不确定它是否能正常运行。