Java 参数扫描器

Java 参数扫描器,java,methods,parameters,java.util.scanner,Java,Methods,Parameters,Java.util.scanner,这是我的问题: 我有一个方法,其中一个参数是Scanner cons,如下所示: public void buyIngredients (Scanner cons){} 这是可行的,但错误主要在于: import java.util.Scanner; public class Main{ public static void main(String [] args){ Hero h = new Hero(); Scanner scan = new Scanner(System.in); in

这是我的问题:

我有一个方法,其中一个参数是Scanner cons,如下所示:

public void buyIngredients (Scanner cons){}
这是可行的,但错误主要在于:

import java.util.Scanner;
public class Main{

public static void main(String [] args){
Hero h = new Hero();
Scanner scan = new Scanner(System.in);
int value = scan.nextInt();
System.out.println(h.buyIngredients(value));
错误是:

Main.java:11: error: method buyIngredients in class Hero cannot be applied to given types;
System.out.println(h.buyIngredients(value)); 
                    ^
 required: Scanner
 found: int
 reason: actual argument int cannot be converted to Scanner by method invocation conversion
您的方法需要扫描程序,但您传递了一个int,这是不正确的。而是通过扫描仪:


您的BuyComponents Scanner cons接收扫描仪对象。您在代码中传递的是一个int值。您不能将int类型强制转换为特定对象。

您的BuyingRedientsCanner cons方法需要一个Scanner作为参数。我怀疑它应该改为BuyingCreditsint cons,但除非我能看到方法主体,否则我无法知道。错误正好说明了问题所在。它需要一个扫描器,而你正在提供一个int。请阅读错误文本。我认为a必须更具体,但我如何修复它?传入一个扫描器对象。在出现错误之前,您创建了一行和两行!扫描仪扫描=新的ScannerSystem.in@即使扫描程序通过,该函数也会返回void。这只是一系列的问题粘在一起。@Walls-非常正确。我只是从第一个错误开始(一次修复一个错误,然后从那里开始)-我在扫描时尝试了一下,现在的错误是:“void”类型不允许在这里输入System.out.printlnh.complaingredientescan;和马克scan@Fletcher您的问题是试图将错误的变量类型传递到这些函数中。无论在中为函数定义什么,都是代码所期望的对象类型。如果您提供不同的类型,函数将不知道该做什么,并抛出您看到的这些错误;方法签名表示无效。你想打印什么?@rgetman是的,它是空的,不返回任何内容,我尝试打印菜单,只是调用它method@Fletcher,在System.out.println外部调用h.BuyingCreditsCAN。您上面的评论是菜单的第一次出现。由于不知道这是什么,您的代码可能看起来像这样:System.out.printlnh.getMenu;。
System.out.println(h.buyIngredients(scan));