Java中是否有相当于C#的索引器?

时间:2012-11-15 18:32:48

标签: c# java

我想用Java做到这一点。有可能吗?

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

4 个答案:

答案 0 :(得分:25)

没有。您不能使Java中的任何运算符超载,包括索引。 (String重载+,但这已经融入了语言规范。)

只有数组支持[]语法。

您通常会改写方法:

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

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

答案 1 :(得分:3)

不,Java与C#的索引器或重载运算符没有任何相似之处。这是函数调用语法在String.charAtList.getMap, put等中使用的最可能原因。

答案 2 :(得分:0)

我不这么认为。 AFAIK常用的Java方法是public string get(int pos)public void set(int pos, String value)方法。

答案 3 :(得分:0)

您可以直接以相同的方式执行,但您可以使用Collection framework Java List,这类似于您想要的功能。例如Set,{{1}}等