gemspec
我在编写方法签名方法时遇到了很多麻烦。
我收到的错误通常涉及接收或返回类型的“错误:类,接口或枚举”。
在这种情况下,错误在方法签名中的返回方面,然后在尝试返回int时在方法中。
任何人都可以解释我做错了吗?
答案 0 :(得分:3)
通常我会在一个问题中重新格式化代码,但由于问题的一半是由于代码没有缩进这一事实引起的,我将在我的答案中重新格式化。
这是您重新格式化的代码:
import java.util.*;
public class Problem5
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
Number();
}
}
public int Number()
{
System.out.println("please enter a one digit number");
int placeholder = scanner.nextInt;
return placholder;
}
现在很容易看出你的Number()
方法不在类定义中。
另外,要从静态方法调用Number()
方法,您还需要使Number()
方法保持静态。
第三,您需要将扫描仪变量传递到Number()
方法。
以下是最终修复:
import java.util.*;
public class Problem5
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
Number(scanner);
}
public static int Number(Scanner scanner)
{
System.out.println("please enter a one digit number");
int placeholder = scanner.nextInt;
return placholder;
}
}
编辑最后,正如@AndyTurner和@javaguy指出的那样,使用Java命名标准 - 变量和方法名称以小写字母开头。
答案 1 :(得分:1)
您无法在class
定义之外编写,因为代码缩进不佳而无法发现,因此请在Number()
内添加Problem5
方法{1}}类如下所示:
public class Problem5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Number(scanner);
}
public static int Number(Scanner scanner) {
System.out.println("please enter a one digit number");
int placeholder = scanner.nextInt;
return placholder;
}
}
另请注意,Number()
方法应为static
,以便从static main()
方法调用它。此外,您需要将scanner
对象作为参数传递给Number()
方法(如上所示)。
作为旁注,请确保遵循Java命名标准,即方法名称以小写字母开头,如number()
,但不像Number()