将Scanner对象作为参数传递给函数的基本语法

这是我写的非常基本的东西:

import java.util.Scanner; public class Projet { /** * @param args * @param Scanner */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Enter a digit"); Scanner in = new Scanner(System.in); getChoice(Scanner); in.close(); } public static int getChoice(Scanner n){ n = in.nextInt(); return n; } } 

这里似乎有什么不对? 我之前有工作,我必须将Scanner类型参数名称作为参数传递给函数…并且只需使用Scanner类型和参数作为函数的参数在main中调用该函数?

– – -编辑 – – –

以下新代码需要它:

 import java.util.Scanner; public class Projet { /** * @param args * @param Scanner */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Enter a digit"); Scanner in = new Scanner(System.in); System.out.println(getChoice(in)); in.close(); } public static int getChoice(Scanner in){ return in.nextInt(); } } 

@rgettman谢谢!

您需要in调用方法时传递实际变量名称,而不是类名称Scanner

 getChoice(in); 

代替

 getChoice(Scanner); 

顺便说一下,你的getChoice方法不会如图所示进行编译。 只需返回扫描程序返回的内容,这是一个int ,因为您声明getChoice返回一个int

 public static int getChoice(Scanner n){ return n.nextInt(); }