1
我有一箇舊的項目,以前運行良好,但今天打開它,找到編譯器告訴我,'cannot find symbol Integer.valueOf(int)'
或'cannot find symbol Integer.toHexString(int)'
。找不到符號Integer.valueOf(int)
似乎java.lang.Integer有問題。 我使用IntelliJ,它編譯失敗,如上所述,但Eclipse工作正常。 此外,我使用粘貼相同的代碼到一個新的IntelliJ項目,它也可以正常工作。
我的舊IntelliJ項目的配置有什麼問題嗎?任何人都會遇到這個問題?
示例代碼如下:
public class ContainerTest {
public static void main(String[] args) {
@SuppressWarnings("unchecked")
List numbers = new ArrayList(Arrays.asList(1, 2, 3)); // cannot find Integer.valueOf(int) here
ListIterator listIterator = numbers.listIterator();
while (listIterator.hasNext()) {
System.out.println("index" + listIterator.nextIndex() + " : " +listIterator.next());
listIterator.add(100);
}
System.out.println(numbers);
}
}
public class BinaryFileTest {
public static void main(String[] args) throws IOException {
DataInputStream reader = null;
try {
String filename = "./target/classes/io/TreeInfo.class";
reader = new DataInputStream(new FileInputStream(new File(filename)));
int i = 0, k;
while (reader.available() != 0 && i++ < 4) {
System.out.println(Integer.toHexString(k = reader.read())); // here
System.out.println(k);
}
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
reader.close();
}
}
}
您是否也在使用較舊的Java版本? – voldy
根據http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#valueOf-int-,「Integer.valueOf(int i)」已被添加到1.5中的Java中。檢查Java IntelliJ認爲你使用的是哪個版本。 – ajb
我確定intellij使用jdk1.8來編譯我的項目,它的日誌顯示「Information:javac 1.8.0_101被用來編譯java源代碼」,我的eclipse使用這個版本來編譯同一個類,但是發現編譯成功。旁邊,我的機器上有jdk7和jdk8,它們都在jdk5之上。 – luxuanren