Методы установки не работают, тогда как методы Getter работают нормально - PullRequest
0 голосов
/ 27 октября 2018

Ошибка всегда в том, что dino нельзя преобразовать в строку типа Однако я изо всех сил пытаюсь понять, почему компилятор будет думать о попытке преобразование dino в целые или строковые значения из первого метода

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;
}

Вот первый метод получения, используемый для записи Динозавра и экземпляра Tyrannosaurus выше

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; 
}

Метод установки, который не работает, делается отсюда, я вижу, что другие Java-сеттеры используют это. но я еще не совсем понял эту концепцию

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; 
}

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

1 Ответ

0 голосов
/ 27 октября 2018

Вы возвращаете 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);

, поэтому его всплывающая ошибка, подобная этой,

в основном, сеттеры ничего не возвращают.удалить код возврата и переписать как этот

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;
}
...