error-handling - 设置方法无效,而获取方法正常

标签 error-handling getter-setter setter

错误始终是恐龙无法转换为字符串类型
但是我很难理解为什么编译器会考虑尝试
从第一种方法将dino转换为int或字符串

public static void Tyrannosaurus() 
{
    String DinoName = Name();
    Dinosaur Tyrannosaurus = new Dinosaur();
    Tyrannosaurus.name = DinoName;
    Tyrannosaurus = setDiet(Tyrannosaurus, DinoDiet[0]);
    Tyrannosaurus = setHP(Tyrannosaurus, 100);
    Tyrannosaurus = setDamage(Tyrannosaurus, 200);
    DaysLoop(DinoName);
    return;
}

这是上面的恐龙记录和霸王龙实例使用的第一种吸气方法
public static String getName (Dinosaur dino)
{
     return Tyrannosaurus.name;
}
public static String getDiet (Dinosaur dino)
{
 return Tyrannosaurus.diet;
}
public static int getHP (Dinosaur dino)
{
     return dino.HP; 
}

public static int getDamage (Dinosaur dino)
{
     return dino.damage; 
}

setter方法不起作用,是从这里完成的,在其他java setter中,我确实看到人们在使用它。但我还没有完全掌握这个概念
public static String setDiet (Dinosaur dino, String TyranDiet)
{
    dino.diet = TyranDiet;
    return dino;
}
public static int setHP (Dinosaur dino, int TyranHP)
{
    dino.HP = TyranHP;
    return dino;
}
public static int setDamage (Dinosaur dino, int TyranDamage)
{
   dino.damage = TyranDamage;
   return dino; 
}

//////////////////////////////////

最佳答案

在以下方法中,您将dino作为字符串返回,并且将dino作为int返回。

public static String setDiet (Dinosaur dino, String TyranDiet);
public static int setHP (Dinosaur dino, int TyranHP);
public static int setDamage (Dinosaur dino, int TyranDamage);

这就是为什么它的 pop 错误

设置员基本上什么也不会返回。删除返回并重新编写这样的代码
public static void setDiet (Dinosaur dino, String TyranDiet)
{
    dino.diet = TyranDiet;
}
public static void setHP (Dinosaur dino, int TyranHP)
{
    dino.HP = TyranHP;
}
public static void setDamage (Dinosaur dino, int TyranDamage)
{
   dino.damage = TyranDamage;
}

关于error-handling - 设置方法无效,而获取方法正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53022140/

相关文章:

javascript - JavaScript 中任何内容的 Setter

oop - matlab getter/setter 方法。为什么他们让我的程序 super 慢?

当用户登录错误时,php登录系统不会停止或发送任何错误消息

python - 尝试从txt.file(PYTHON)获取总和时输入中的时间数据错误

arrays - 程序给出信号 SIGABRT : Process abort signal in one code and does not in other code

c++ - 使用 getter/setter vs "tell, don' t 问“?

python - 按照设计,属性 getter 是否应该在 python 中抛出异常?

php - 使用 Try/Catch PHP 方法捕获 Stripe 错误

c++ - setter 和 getter 中的引用和指针。需要例子

java - setter 未更新变量