为什么对于if语句,此错误状态为“无法取消引用”?

时间:2019-06-05 21:04:37

标签: java

我在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。变量username和password用于文本字段,正如您在代码中看到的那样,我将“ username”和“ password”的所有输入数据转换为数值。因此,对于该问题,我希望if语句显示变量“ password”的长度,但显示错误,指出“ int cannot be dereferenced”?

4 个答案:

答案 0 :(得分:2)

您在这里遇到问题:

  

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

int没有length()方法,与String不一样,如果要检查密码字段的长度,则可以使用:

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

或者如果您将密码用作整数,则需要检查整数的长度,然后使用:

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

答案 1 :(得分:1)

函数length()用于字符串,如果要获取数字的数字,则应执行以下操作:

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

答案 2 :(得分:1)

编译器错误完全正确

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

我认为您想做的是

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

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

答案 3 :(得分:1)

原始数据类型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);

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