2013-05-08 51 views
-1
public static int getIndex(String value, Constants type) { 
    int myPosition = -1; 
    for (int i = 0; i < type.length; i++) { 
     if (type[i] == value) { 
      myPosition = i; 
      break; 
     } 
    } 
    return myPosition; 
} 

我想到了一種通用方法,將值和常量傳遞給方法以獲取字符串值所需的索引。它在JS很容易做到,但我不知道我怎麼能在java中拋棄相同的方法。獲取傳入的值的索引

CommonMethods.Utils.getIndex("Kevin", Contants.Name); 

上述方法不工作,因爲它說「長度不能得到解決或不是一個場」

+3

什麼是「常量」?一個枚舉?一個界面?一類? 「length」屬性在數組上是有效的(當在類或接口上顯式聲明「length」時)。 – rgettman 2013-05-08 22:52:22

+0

可能的重複[如何比較Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – jlordo 2013-05-08 22:53:42

+1

代碼應該做什麼? – wchargin 2013-05-08 22:54:41

回答

1

typeConstants,不是一個數組。您無法運行type.length,因爲Constants未定義length屬性。

如果Constants是枚舉,則可以使用Constants.values()來獲取所有常量的數組。

3

您的Constants對象應該是某種Collection。看看這些。有很多不同的屬性。

你似乎在這裏重寫的是ArrayList。那些已經有內部搜索功能indexOf

+0

我如何獲得實際映射到我的數組的對象的索引...讓我的數組包含三個對象[「sas」,「asas」,「asas」]。 ArrayList.indexOf(myObject)將返回列表的項目或索引的索引。 – Kevin 2013-05-08 23:14:56