Java 如何不为返回类型为int的方法返回任何内容
在我的程序中,用户将输入他们的登录信息。然后,他们将面临一个菜单,在其中他们选择选项1-7。选项1-7只是将在其自身数据上运行的各种查询 我的登录功能是验证他们是谁,以便让他们访问自己的数据。如果验证通过,我将返回他们输入的id号,以便将其传递到其他函数(1-7) 在if-else语句中,如果密码匹配,我希望它返回id号;如果密码匹配失败,则返回Java 如何不为返回类型为int的方法返回任何内容,java,jdbc,methods,Java,Jdbc,Methods,在我的程序中,用户将输入他们的登录信息。然后,他们将面临一个菜单,在其中他们选择选项1-7。选项1-7只是将在其自身数据上运行的各种查询 我的登录功能是验证他们是谁,以便让他们访问自己的数据。如果验证通过,我将返回他们输入的id号,以便将其传递到其他函数(1-7) 在if-else语句中,如果密码匹配,我希望它返回id号;如果密码匹配失败,则返回null 我知道int不能是null,但是我的这个方法的返回类型是int,那么我能做什么呢? 为了及时完成我的任务,如果不匹配,我将返回一个值0,表示登
null
我知道int
不能是null
,但是我的这个方法的返回类型是int
,那么我能做什么呢?
为了及时完成我的任务,如果不匹配,我将返回一个值0,表示登录失败。但是,对我来说,更重要的是成为一名优秀的Java程序员,所以我想知道:
谢谢 如果您声明了一个int类型的方法,它必须返回一个int。只需声明/定义一个无效的返回变量,如果没有找到匹配项,它将返回,就这么简单。如果您声明了一个int类型的方法,它必须返回一个int。只需声明/定义一个无效的返回变量,如果找不到匹配项,将返回该变量,就这么简单。最简单的更改是返回
整数
和null
Integer
是一个对象,这就是为什么可以这样做
或者,如果无法登录是一个错误,您可以抛出一个异常。这可能不是特例,所以这可能不是最好的方法
最好不要返回int/Integer。相反,要有一个表示下一步要做的事情的类 最简单的更改是返回
Integer
和null
Integer
是一个对象,这就是为什么可以这样做
或者,如果无法登录是一个错误,您可以抛出一个异常。这可能不是特例,所以这可能不是最好的方法
最好不要返回int/Integer。相反,要有一个表示下一步要做的事情的类 无论何时使用基元类型声明函数,它都必须返回值或引发异常。您可以使用包装器类型:Boolean、Integer、Long等返回null,因为它们是Java中的“真实”对象。任何时候您使用基元类型声明函数时,它都必须返回值或引发异常。您可以使用包装类型:Boolean、Integer、Long等返回null,因为它们在Java中是“实”对象。当方法的返回类型为
int
时,您必须返回int
。若要指示发生了错误,您可以返回无效的值或引发异常。如果方法的返回类型为int
,则必须返回int
。要指示发生了错误,您可以返回一个无效的值,也可以抛出一个异常。不从方法返回的最佳方法是抛出一个异常。当人们忘记检查错误值时,返回null或zero等错误值会导致错误代码。异常是明确的,不能忽略。不从方法返回的最佳方法是抛出异常。当人们忘记检查错误值时,返回null或zero等错误值会导致错误代码。异常是明确的,不能忽略。返回零,或者像-1这样的负值是一种可能性。您还可以创建一个选中的异常LoginException
,该异常在登录凭据无效时抛出。这种方法的优点是,您可以在LoginException
中记录错误登录尝试,返回零,或者像-1这样的负值是一种可能性。您还可以创建一个选中的异常LoginException
,该异常在登录凭据无效时抛出。这种方法的优点是,您有一种很好的方法在LoginException
中记录错误登录尝试。实际上,明智的做法是,您应该使用不同的方法将返回编号与查询分开。
要返回null,需要从方法返回一个类,例如ADT(抽象数据类型)。
但是,如果您可以在每次使用前使用一个Integer类变量将0 0标记为null,并将其重置为null,那么这可能过于复杂,因此如果返回的是零,您只需要输入if-else来测试“Integer”变量为null或包含重置为从方法返回的int数。为了明智起见,您应该将返回数与查询分开,将它们放在不同的方法中。 要返回null,需要从方法返回一个类,例如ADT(抽象数据类型)。 但是,如果您可以在每次使用之前使用一个类Integer的变量将0 0标记为null,并将其重置为null,那么这可能过于复杂了。因此,如果返回的变量为零,则只需要输入if-else,以测试“Integer”变量是否为null,或者包含重置为方法返回的int数
public static int logIn(Statement stmt){
int id;
String pw;
String select;
boolean match;
System.out.print("userID: ");
id = input.nextInt();
input.nextLine();
System.out.print("password: ");
pw = input.next();
input.nextLine();
select = "SELECT user_id, password FROM login WHERE user_id = " + id;
try{
ResultSet rs = stmt.executeQuery(select);
while(rs.next()){
if(id == rs.getInt(1) && pw.equals(rs.getString(2))){
match = true;
}
}
}
catch(SQLException logfail){
logfail.printStackTrace();
System.out.println("could not print password");
}
if(match == true)
return id;
else break;
}