此代码在Java 6(IBM Java 6)中编译和运行,但不在Java 8(IBM Java 8和Eclipse的内置编译器)中编译:
public static void main(String[] args) {
int[] values = { 45, 50, 55, 60,59,58, 45, 40, 50, 55,54,53,55 };
//keep track so that previous smaller element is also included
boolean pair=false;
for (int i = 1; i < values.length;i++ ) {
if(values[i-1]<values[i]){
if(!pair){
System.out.println(values[i-1]);
pair=true;
}
System.out.println(values[i]);
}else{
pair=false;
}
}
}
编译错误是:
$(document).ready(function () {
$("#txtdate").datepicker({
minDate: 0
});
});
我在将实际应用程序从Java 6迁移到Java 8时发现了这个问题。这个代码对我来说没问题,因为当Java在重载方法中选择时,varargs方法通常被用作最后的手段。
这里有什么问题?
答案 0 :(得分:0)
我认为这是因为Object
类型。编译器认为布尔参数是Object
的子类(可能是因为自动装箱?),所以它将其视为另一个vararg。