20

Javaでこれをやりたいです。出来ますか?

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

4 に答える 4

30

いいえ。インデックス作成を含め、Java の演算子をオーバーロードすることはできません。(Stringオーバーロード+しますが、それは言語仕様に組み込まれています。)

配列のみが[]構文をサポートします。

通常、代わりにメソッドを記述します。

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

public void setValue(int position, String value) {
    myData[position] = value;
}
于 2012-11-15T18:34:01.483 に答える
3

いいえ、Java には C# のインデクサーやオーバーロードされた演算子に似たものはありません。String.charAtこれが、List.get、 、 などで関数呼び出し構文が使用される最も可能性の高い理由Map, putです。

于 2012-11-15T18:33:52.923 に答える
0

私はそうは思わない。私の知る限り、これに対する通常の Java アプローチはpublic string get(int pos)andpublic void set(int pos, String value)メソッドです。

于 2012-11-15T18:36:04.883 に答える
0

あなたは直接同じ方法で行うことができますが、あなたが望むと思われる機能の類似した種類のどのサービスCollection frameworkを使用することができます. JavaなどList_ Set_

于 2012-11-15T18:36:22.523 に答える