为什么 if 语句的此错误状态"int cannot be dereferenced"?



我在Stack Overflow中查找了与我的问题相似的其他几个问题,但没有一个有助于解决我的问题。所以基本上,我的问题是程序不会执行,因为它对if语句说"int cannot be dereferenced"。如何解决此问题?

好吧,我尝试在大括号周围移动,并尝试了.length((的不同方法,但没有任何效果。

private void generateButtonActionPerformed(java.awt.event.ActionEvent evt) {
    int username, password, random;
    username = Integer.parseInt(usernameTextField.getText());
    password = Integer.parseInt(passwordTextField.getText());
    if (password.length() != 7) {
    }
}

我在 NetBeans 中使用 GUI。变量用户名和密码用于文本字段,正如您在代码中看到的那样,我将"用户名"和"密码"的任何输入数据转换为数值。因此,对于此问题,我希望 if 语句显示变量"password"的长度,但它反而显示一个错误,指出"int cannot be dereferenced"?

你在这里有一个问题:

if (password.length() != 7){

int没有length()方法,不像字符串,如果你想检查密码字段的长度,那么你可以使用:

if (passwordTextField.getText().length() != 7) {

或者,如果您将密码用作 int,并且需要检查 int 的长度,请使用:

if (String.valueOf(password).length() != 7) {

函数 length(( 用于字符串,如果你想获取一个数字的数字,你应该像下面这样做:

int length = String.valueOf(password).length();

编译器错误完全正确

您已将密码声明为 int 并且 int 没有长度方法

我想你想做的是

private void generateButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
    String username,password,random;
    username = usernameTextField.getText();
    password = passwordTextField.getText();
    if (password.length() != 7){
    }                                              
}  

原始数据类型 int 没有方法 length((,它的包装类也没有这样的方法。

您可以在将其解析为整数之前检查长度,例如:

int username, password, random;
String userName = usernameTextField.getText();
String pass = passwordTextField.getText();
if (userName.length() != 7) {
    // do something
}
if (pass.length() != 7) {
    // do something
}
username = Integer.parseInt(userName);
password = Integer.parseInt(pass);

希望这有帮助。祝你好运。

最新更新