2013-05-08 3 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

+0

Возможный дубликат [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – jlordo

+1

Что нужно сделать * для кода? – wchargin

ответ

1

type является Constants, а не массив. Вы не можете запустить type.length, потому что Constants не определяет length.

Если Constants является перечислением, вы можете использовать Constants.values(), чтобы получить массив из всех констант.

3

Ваш Constants объект должен быть своего рода Collection. Посмотрите на них. Их много с разными атрибутами.

Что вы, кажется, переписываете здесь, это ArrayList. У них уже есть функция для поиска внутри: indexOf.

+0

Как получить индекс моего объекта, который фактически сопоставлен с моим массивом ... позволяет взять мой массив, содержащий три объекта ["sas", "asas", "asas"]. ArrayList.indexOf (myObject) вернет мне индекс элементов массива или индекс списка. – Kevin