好的,所以这是在黑暗中拍摄但...... 有没有办法重载参数多维数组访问以接受自定义参数?
//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,但我也想知道它是否可能。
答案 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]
。