Java 尝试使用字符串数组从类创建新对象
我有一个名为Player的类,其中有三个变量,其中一个是一个包含十个值的字符串数组(playerInv)。我如何使用这个Player类在我的主活动类中创建一个新的Player,数组中的每个索引都有一个空值(“”) 玩家等级:Java 尝试使用字符串数组从类创建新对象,java,android,arrays,class,Java,Android,Arrays,Class,我有一个名为Player的类,其中有三个变量,其中一个是一个包含十个值的字符串数组(playerInv)。我如何使用这个Player类在我的主活动类中创建一个新的Player,数组中的每个索引都有一个空值(“”) 玩家等级: public class Player { private int playerPos; private int playerHP; private String playerInv[]; Player(int startPos, int
public class Player {
private int playerPos;
private int playerHP;
private String playerInv[];
Player(int startPos, int startHP, String[] newInventory[]) {
playerPos = startPos;
playerHP = startHP;
playerInv = newInventory[10];
}
public int getPlayerPos() {
return playerPos;
}
public void setPlayerPos(int playerPos) {
this.playerPos = playerPos;
}
public int getPlayerHP() {
return playerHP;
}
public void setPlayerHP(int playerHP) {
this.playerHP = playerHP;
}
public String setPlayerInv(int pos) {
return playerInv[pos];
}
public void setPlayerInv(String inventory) {
for (int i = 0; i < 10; i++) {
this.playerInv[i] = playerInv[i];
}
}
}
谢谢 在您的播放器构造函数中:
Player(int startPos, int startHP, String[] newInventory)
{
playerPos = startPos;
playerHP = startHP;
if (newInventory == null)
{
playerInv = new String[10];
for (int i = 0; i < playerInv.length; i++)
{
playerInv[i] = "";
}
}
else
{
playerInv = newInventory;
}
}
Player(int startPos, int startHP, String[] newInventory)
{
playerPos = startPos;
playerHP = startHP;
playerInv = newInventory;
}
希望它有助于…使用默认情况下生成所需内容的构造函数。首先,类构造函数中有一个错误。 如果要将字符串数组作为构造函数参数,则应如下所示:
Player(int startPos, int startHP, String[] newInventory)
{
playerPos = startPos;
playerHP = startHP;
playerInv = newInventory;
}
或者,如果希望playerInv
始终是一个大小为10的字符串数组,它应该是这样的
Player(int startPos, int startHP)
{
playerPos = startPos;
playerHP = startHP;
playerInv = new String[10];
}
然后,使用以下简单命令创建一个新的Player
对象:
thePlayer = new Player(0, 100);
重要的是,在第二种情况下,playerInv变量将包含对字符串类型的数组的引用,该数组用null填充。因此,该表将如下所示:
[null, null, null, null, null, null, null, null, null, null]
["","","","","","","","","",""]
如果希望数组中填充如下所示的空字符串(“”)值:
[null, null, null, null, null, null, null, null, null, null]
["","","","","","","","","",""]
那么您至少有两种方法可以做到这一点:
Player(int startPos, int startHP)
{
playerPos = startPos;
playerHP = startHP;
playerInv = new String[10];
Arrays.fill(playerInv, "");
}
或者您可以使用此构造函数:
Player(int startPos, int startHP, String[] newInventory)
{
playerPos = startPos;
playerHP = startHP;
if (newInventory == null)
{
playerInv = new String[10];
for (int i = 0; i < playerInv.length; i++)
{
playerInv[i] = "";
}
}
else
{
playerInv = newInventory;
}
}
Player(int startPos, int startHP, String[] newInventory)
{
playerPos = startPos;
playerHP = startHP;
playerInv = newInventory;
}
并在创建新的Player
对象时执行此操作:
String[] inventory = new String[10];
Arrays.fill(inventory, "");
Player thePlayer = new Player(0, 100, inventory);
是否希望数组中有空值或“”(空字符串)?完成!:)我遇到的另一个问题是,我的thePlayer.getPlayerInv和thePlayer.setPlayerInv在我的主要活动中显示为“无法解析符号”。有什么想法吗?你的
Player
类中没有方法getplayeriv()
。我建议在用java编写代码时使用IntelliJ、Eclipe或Netbeans IDE,因为它们会动态地给您错误建议。:)我已经纠正了这一点。但是,我仍然在get和Set方法上都得到“无法解析符号”::很抱歉,要回答这个问题,我需要查看整个代码。很可能任何IDE都会帮助您修复代码。:)