Есть ли эквивалент индексатора С# в Java? - программирование
Подтвердить что ты не робот

Есть ли эквивалент индексатора С# в Java?

Я хочу сделать это на Java. Возможно ли это?

public string this[int pos]
    {
        get
       {
            return myData[pos];
        }
        set
       {
            myData[pos] = value;
        }
    }
4b9b3361

Ответ 1

Нет. Вы не можете перегружать каких-либо операторов на Java, включая индексирование. (String перегрузки +, но это испечено в спецификации языка.)

Только массивы поддерживают синтаксис [].

Вместо этого вы обычно пишете методы:

public String getValue(int position) {
    return myData[position];
}

public void setValue(int position, String value) {
    myData[position] = value;
}

Ответ 2

Нет, у Java нет ничего подобного индексам С# или перегруженным операторам. Это наиболее вероятная причина, по которой синтаксис вызова функции используется в String.charAt, List.get, Map, put и т.д.

Ответ 3

Я так не думаю. AFAIK обычный подход Java к этому - это методы public string get(int pos) и public void set(int pos, String value).

Ответ 4

Вы можете сделать то же самое, но вы можете использовать Collection framework of Java, который обеспечивает аналогичную функциональность, которую вы хотите, я полагаю. Например, List, Set и т.д.