我正在创建一个存储java.time.LocalDate个对象的堆程序。虽然我在为LocalDate创建临时变量时遇到了麻烦。我可能犯了一个小错误,但这是我的代码
private void trickleUp(int n) {
int pIndex;
if (n != 0) {
pIndex = getParentIndex(n);
if (heapA[pIndex].isAfter(heapA[n])) {
LocalDate temp = new LocalDate(heapA[pIndex]);
heapA[pIndex] = heapA[n];
heapA[n] = temp;
trickleUp(pIndex);
}
}
}
我收到错误'构造函数LocalDate(LocalDate)未定义'
答案 0 :(得分:5)
LocalDate是一个不可变的类。没有理由创建另一个LocalDate实例的副本。你只需要
LocalDate temp = heapA[pIndex];
您应该始终检查您正在使用的类的javadoc。在这种情况下:http://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html。事实上,正如错误消息所说,LocalDate中没有构造函数将LocalDate作为参数。实际上,根本没有构造函数。 LocalDate实例通常通过将其他对象转换为LocalDate或使用javadoc中列出的静态工厂方法之一来创建。