«фактические и формальные списки аргументов различаются по длине» - PullRequest
0 голосов
/ 19 марта 2019

Я получаю эту ошибку:

ошибка: метод createOrderSummary в классе MainActivity не может быть применен к данным типам;

требуется: int, логическое значение

найдено: int

причина: фактические и формальные списки аргументов различаются по длине

Вот мой код:

public void submitOrder(View view) {
    CheckBox whippedCreamCheckBox = (CheckBox) findViewById(R.id.whipped_cream_checkbox);
    boolean hasWhippedCream = whippedCreamCheckBox.isChecked();

    int price = calculatePrice();
    String priceMessage = createOrderSummary(int price)
    displayMessage(priceMessage);

}

private String createOrderSummary(int price, boolean addWhippedCream) {
String priceMessage = "Name: Samantha";
priceMessage += "\nAdd Whipped Cream?" + addWhippedCream;
priceMessage += "\nQuantity: " + quantity;
priceMessage += "\nTotal: $" + price;
priceMessage += "\nThank You!";
return priceMessage;

Проблема, как мне кажется, началась с добавления логической переменной в строку. Я не понимаю, почему логическая переменная Спасибо за вашу помощь!

Ответы [ 3 ]

0 голосов
/ 19 марта 2019

Ваш вызов метода должен выглядеть следующим образом:

string SomeString = createOrderSummary(10, true);

Ошибка, которую вы получаете в основном, говорит о том, что при совершенном вами вызове отсутствует параметр (возможно, в вашем методе Main):

//this is wrong. The second argument is missing. 
string SomeString = createOrderSummary(10);

И, кстати. Вы не можете просто добавить строку и логическое значение. Вы должны сначала преобразовать логическое значение.

boolean addWhippedCream = true;
String str = String.valueOf(addWhippedCream);
System.out.println("The String is: "+ str);

или

System.out.println("The String is :" + String.valueOf(addWhippedCream));
0 голосов
/ 19 марта 2019

Метод, который вы вставили, должен быть внутри класса, поэтому я вставлю его в один:

class A{
    private String createOrderSummary(int price, boolean addWhippedCream) {
         String priceMessage = "Name: Samantha";
         priceMessage += "\nAdd Whipped Cream?" + addWhippedCream;
         priceMessage += "\nQuantity: " + quantity;
         priceMessage += "\nTotal: $" + price;
         priceMessage += "\nThank You!";
         return priceMessage;
    }
}

Чтобы вызвать (вызвать) его, вам нужно создать объект класса A и затем вызвать этот метод для этого объекта.

Например:

A a = new A();
a.createOrderSummary(10, true);
new A().createOrderSummary(5, false);

Вы можете сохранить результат такого вызова:

string result1 = a.createOrderSummary(10, true);
string result2 = new A().createOrderSummary(5, false);
0 голосов
/ 19 марта 2019

передать эти значения. Вы только проходите, я думаю. Пример

вызов функции

createOrderSummary(20, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...