我正在做的是将c#项目转换为java,以便在编写自定义类时进行练习。 不幸的是,我无法弄清楚这个人正在做什么"这个"构造函数中的关键字。
// C# Code - How is this written in Java?
public Player this[int x, int y]
{
get { return squares[x, y]; }
set { squares[x, y] = value; }
}
我已经转换了很多代码,并且有点坚持这个。我似乎无法在Java中找到有关此特定实例的任何信息。有没有人对我有好的领导?
答案 0 :(得分:9)
那不在构造函数中。那是indexer的宣言。 Java等价物将类似于:
public Player getPlayer(int x, int y)
{
// Note: Java doesn't have "real" multidimensional arrays,
// only arrays of arrays.
return squares[x][y];
}
public Player setPlayer(int x, int y, Player player)
{
squares[x][y] = player;
}
答案 1 :(得分:0)
这个blog有一些关于如何将C#索引器移植到java代码的想法。
基本上它可以在java getter / setter中实现:
public Player get(int x, int y) { return squares[x][y];}
public Player set(int x, int y, Player p) { squares[x][y] = p;}
答案 2 :(得分:0)
那不是构造函数,而是indexer。基本上,这个定义允许你这样做:
Player playerAtOrigin = myGameBoard[0, 0];
在Java中,只有数组具有索引器(例如myArray[i]
),您无法定义自己的索引器。最有可能的是,您需要将其转换为两种方法getPlayerAt(int x, int y)
和setPlayerAt(int x, int y, Player player)
。