Как мне создать метод get для возврата как строки, так и целого числа? - PullRequest
1 голос
/ 15 апреля 2019

Я пытаюсь создать метод getCalories, в котором мне нужно возвращать строку вместе с целым числом, но я получаю сообщение об ошибке, в котором говорится, что одно не может быть преобразовано в другое. Как мне сделать эту работу?

package task14;

import java.util.ArrayList;

public class Meal {

    ArrayList<Ingredient> ingredient = new ArrayList<Ingredient>();

    public Meal() {};

    public Meal(ArrayList<Ingredient> ingredient) {
        this.ingredient = ingredient;
    }

    **public int getCalories() {
        return "This meal has" + Ingredient.numberOfCalories;
    }**

    public String toString() {

        return ingredient.toString();

    }
}

Ответы [ 3 ]

2 голосов
/ 15 апреля 2019

Если вы пытаетесь вернуть предложение типа «В этой еде 10», вам нужно изменить тип возврата вашего метода на String.

Если вы пытаетесь вернуть оба- нет.Нет причины, по которой вы не можете поместить этот фрагмент текста, куда бы вы ни звонили getCalories, перед тем, для чего он используется.

Кстати, не имеет смысла просто печататьзначение калорий для одного ингредиента в классе Meal.Возможно, вы хотите просмотреть все Ingredient с и суммировать калории, прежде чем возвращать общее количество?

1 голос
/ 16 апреля 2019

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

1 голос
/ 16 апреля 2019

Во-первых, по методу public int getCalories() я бы изменил int на String. Затем в строке return "This meal has" + Ingredient.numberOfCalories; после токена + Вы можете проанализировать для String значение numberOfCalories с помощью Integer.toString(Ingredient.numberOfCalories). Это будет возвращать строку, надеюсь, это сработает для вас.

...