2010-05-14 80 views
0

ERROR:參照IndexOutOfBoundsException異常是不明確的

參照IndexOutOfBoundsException異常是模糊的,在java.lang中com.sun.star.lang和類java.lang.IndexOutOfBoundsException兩個類com.sun.star.lang.IndexOutOfBoundsException比賽

CODE:

public void insertIntoCell(int CellX, int CellY, String theValue, 
          XSpreadsheet TT1, 
          String flag) throws IndexOutOfBoundsException { 

    XCell oCell = null; 
    oCell = TT1.getCellByPosition(CellX, CellY); 

    if (flag.equals("V")) { 
     oCell.setValue((new Float(theValue)).floatValue()); 
    } else { 
     if (theValue!=null && theValue.length()>0 && theValue.length()!=0) { 
      oCell.setFormula("'"+(String)theValue.toString()); 
     } else { 
      oCell.setFormula((String)theValue.toString()); 
     } 
    } 
    } 

回答

5

完全限定的異常類型。

public void insertIntoCell.. throws com.sun.star.lang.IndexOutOfBoundsException { 
} 

我假定在這裏,你不打算扔java.lang.IndexOutOfBoundsException,這是一個未經檢查的RuntimeException,但我可能是錯的。

你也可以使用一個single-type import declaration代替:

import com.sun.star.lang.IndexOutOfBoundsException; 
//... 

public void insertIntoCell.... throws IndexOutOfBoundsException { 
} 

但是,這可能會導致更大量的混亂沿管路。

4

IndexOutOfBoundsException已經出現比(隱含的)進口一次。你需要重新組織進口的更具體的(即不使用import com.sun.star.lang.*import com.sun.star.lang.SomeClassName,如果你使用像Eclipse的IDE,它可以爲你做自動),或使用完全合格類名稱。即包括包裹,例如的

throws java.lang.IndexOutOfBoundsException 

代替

throws IndexOutOfBoundsException 

這就是說,因爲那些com.sun.*sun.*進口被認爲是不好的做法,無證孫類,其受到的變化,不會對非Sun工作JVM的。即使Sun本身也建議不要在自己的代碼中導入/使用這些類。

1

IndexOutOfBoundsException不明確,因爲在兩個不同的包(com.sun.star.lang和java.lang)中有兩個名爲IndexOutOfBoundsException的類。你需要告訴你用正確的軟件包名稱前綴IndexOutOfBoundsException異常是指哪一個編譯器。

0

@BalusC和@polygenelubricants答案是當場上。

我只想指出,這說明了當某人在java.lang或其他廣泛使用的類中定義了一個與類名相同的類時可能出現的問題。你可能會碰到在長期的其他例子是java.util.Datejava.sql.Datejava.util.Listjava.awt.List

相關問題