小编Lin*_* M.的帖子

在 setter 中使用 switch 语句

这可能是一个非常愚蠢的问题,但我想我会试着问!基本上问题是这样的:我可以在我的 setter 中使用 switch 语句吗?

这就是我正在做的事情:我创建了一个具有 healthPoints、描述、损坏和类型属性的 Monster 类,其中类型是一个枚举。在我的驱动程序中,我编写了几行代码,这些代码将从枚举值中随机生成一个怪物类型,并使用该类型创建一个新的怪物。

问题是当我显示怪物统计数据时,它显示 healthPoints 和伤害为 0,描述为空。当我尝试使用默认 Monster 构造函数运行程序时,它崩溃并显示 NullPointerException 错误。

我认为错误出在我的 setter 或构造函数中。每个 setter 里面都有一个 switch case,它根据随机生成的怪物类型设置一定数量的 healthPoints、伤害和具体描述。我不确定在 setter 中使用 switch 语句是否可以,因为我以前从未真正需要这样做。

这是我的一些代码。首先,我的构造函数。

public Monster(int healthPoints, monsterType type, int damage, String description)
{
    setHealthPoints(healthPoints);
    setType(type);
    setDamage(damage);
    setDescription(description);
}

public Monster(monsterType type)
{
    setType(type);
}
Run Code Online (Sandbox Code Playgroud)

以下是其中一位二传手。

public void setHealthPoints(int healthPoints)
{
    switch(type)
    {
        case DROW: 
            healthPoints = 30;
            break;
        case LICH:
            healthPoints = 40;
            break;
        case ORC:
            healthPoints = 20;
            break;
        case OWLBEAR:
            healthPoints …
Run Code Online (Sandbox Code Playgroud)

java setter

2
推荐指数
1
解决办法
1241
查看次数

标签 统计

java ×1

setter ×1