Java 尝试使用字符串数组从类创建新对象

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

我有一个名为Player的类,其中有三个变量,其中一个是一个包含十个值的字符串数组(playerInv)。我如何使用这个Player类在我的主活动类中创建一个新的Player,数组中的每个索引都有一个空值(“”)

玩家等级:

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都会帮助您修复代码。:)