2017-07-22 96 views
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(); 
     } 
    } 
} 
+1

您是否也在使用較舊的Java版本? – voldy

+0

根據http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#valueOf-int-,「Integer.valueOf(int i)」已被添加到1.5中的Java中。檢查Java IntelliJ認爲你使用的是哪個版本。 – ajb

+0

我確定intellij使用jdk1.8來編譯我的項目,它的日誌顯示「Information:javac 1.8.0_101被用來編譯java源代碼」,我的eclipse使用這個版本來編譯同一個類,但是發現編譯成功。旁邊,我的機器上有jdk7和jdk8,它們都在jdk5之上。 – luxuanren

回答

0

當您使用的版本是很常見的是不支持的方法,來解決這個問題,請確保您在集成開發環境都使用相同的版本(日食和IntelliJ)。在IntelliJ中你可以設置在Project Settings > Project中選擇正確的Project SDK版本,方法同Project Settings > Modules選擇你的項目,點擊Dependencies選項卡並選擇正確的Module SDK版本。