具有多个变量的类的多维数组访问

时间:2013-01-22 04:18:01

标签: java

好的,所以这是在黑暗中拍摄但...... 有没有办法重载参数多维数组访问以接受自定义参数?

//normal array access
myArray[1][2];

//I have a class with two ints and do this
myArray[int2Var.x][int2Var.y];

//is there any way to overload the array arguments so I can do this to access a two dimensional array?
myArray[int2Var];

我目前正在使用Java,但我也想知道它是否可能。

1 个答案:

答案 0 :(得分:2)

没有。 Java不像C ++那样支持运算符重载。

这是一个Java版本,以防您感兴趣:

public class Test {

    public static class Index
    {
        int x;
        int y;
    }
    public static <T> T get(T[][] array, Index i)
    {
        return array[i.x][i.y];
    }
    public static void main(String[] args)
    {
        Index ix = new Index();
        ix.x = 1;
        ix.y = 2;

        Integer[][] arr = new Integer[3][3];
        for (int i=0; i<3; i++)
            for (int j=0; j<3; j++)
                arr[i][j] = 3*i + j;

        System.out.println(get(arr,ix));
    }
}

方法get(...)获取任何引用类型和索引对象的数组,并返回所选对象。对于原语,每个基本类型需要一个专门的get方法。

另请注意,java中的数组语法不是[a,b],而是[a][b]