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

标签 java android arrays class

我有一个名为 Player 的类,其中有三个变量,其中一个是具有十个值的字符串数组 (playerInv)。我如何使用这个 Player 类在我的主 Activity 类中创建一个新的 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];
        }
    }
}

在主 Activity 中初始化播放器

public void setupPlayer()
{
    thePlayer = new Player(0,100,);
}

谢谢!

最佳答案

一开始,您的类构造函数中存在错误。 如果你想获取 String 数组作为构造函数参数,它应该看起来像这样:

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 变量将包含对填充为空的 String 类型数组的引用。所以表格看起来像这样:

[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;
    playerInv = newInventory;
}

并在创建新的 Player 对象时执行此操作:

String[] inventory = new String[10];
Arrays.fill(inventory, "");
Player thePlayer = new Player(0, 100, inventory);

关于java - 尝试使用字符串数组从类创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34796898/

相关文章:

android - 如何使用 RecyclerView.State 保存 RecyclerView 滚动位置?

android - Android 上的 100% native C 应用程序?

php - 哪种检查数组是否包含多个元素的更好方法?

php - 如何在 PHP 中以单一表单循环访问常见字段集?

java - 泛型类 - Java 中的初始化

Java 如何在不使用外部库的情况下从毫秒获取月份

java - Spring Integration - 按名称读取文件

java - 将字符串转换为 gson 对象

java - Android - 将编辑文本格式化为 xxx.xx 的正则表达式

php获取多维数组的唯一值