Есть ли эквивалент индексатора С# в Java?
Я хочу сделать это на Java. Возможно ли это?
public string this[int pos]
{
get
{
return myData[pos];
}
set
{
myData[pos] = value;
}
}
Ответы
Ответ 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
и т.д.