我想我可能完全破坏了我想要创建的方法的语法。该方法是更大的应用程序的一部分,该应用程序获取用户信息以制作发票。
出于任何原因我收到以下错误:
java:43: error: incompatible types: String cannot be converted to int
非常感谢任何帮助!
以下是我尝试过的最新版代码:
public static int inputmethod(String question){
Scanner in=new Scanner(System.in);
System.out.println ("Input " + question + ":");
int s=in.nextInt();
String x = "Wrong, value cannot be 0, please try again!";
if (s==0)
return x;
else
return s;
}
答案 0 :(得分:1)
您不能返回两种不同的类型。您必须选择一个,例如String和update declaration。
答案 1 :(得分:0)
您的方法必须返回“int”,但在s == 0
时返回一个字符串答案 2 :(得分:0)
您的方法签名为 GAC = new GoogleApiClient.Builder(act)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addScope(Drive.SCOPE_APPFOLDER)
.addConnectionCallbacks(...)
.addOnConnectionFailedListener(...)
....
.setAccountName(email)
....
.build();
,这意味着您只能返回public static int inputmethod(String question)
。您从方法(int
)返回String
以及导致错误的原因。
答案 3 :(得分:0)
你想要返回x,字符串,而不是整数。
如果您想要某种输入验证(不要让用户输入零),您可以将读数包装在循环中:
def recursive_fact(n):
lookup = {0: 1}
return lookup.get(n, n*recursive_fact(n-1))
答案 4 :(得分:0)
Java有类型,而不是像动态类型的javascript。如果你仔细看,你的功能装饰会回归' int'类型;因此,你绝对只需要返回一个' int'关于这个功能。
你应该输出一条消息或抛出一个例外:
public static int inputmethod(String question){
Scanner in=new Scanner(System.in);
System.out.println ("Input " + question + ":");
int s=in.nextInt();
String x = "Wrong, value cannot be 0, please try again!";
if (s==0) {
System.out.println(x);
return 0;
}
else return s;
}
答案 5 :(得分:0)
感谢大家的帮助!
基本原因是因为该方法只能返回一个整数。因此输入评估需要一个while循环(以及代码的动态变化)。我最终使用的代码是Stefans。
感谢!!!!!