通过Arrayyl循环java循环
嗨我正在创建一个sortOf使用javafx8的银行应用程序。我似乎在添加新帐户方面遇到了麻烦。我想要做的是创建一个循环来读取列表,如果存在相同的帐号并提示用户它已经存在。你能检查我做错了吗?通过Arrayyl循环java循环
BTW I have corrected out all the typo's Eclipse always asks me to correct those before compiling
这是我主要的应用程序列表 private ObservableList<Person> personData = FXCollections.observableArrayList();
这里是我做访问另一个类的列表
public ObservableList<Person> getPersonData() {
return personData;
}
而且在这里我PersonEditDialogController类来访问列表它是这样做的
MainApp mainapp = new MainApp();
ObservableList<Person> personData = mainapp.getPersonData();
这里是我的代码来验证用户输入
private boolean isInputValid() {
String errorMessage = "";
if (accountNumField.getText() == null || accountNumField.getText().length() == 0) {
errorMessage += "Not a valid account number!\n";
}
//TO LOOP THROUGH THE LIST
Person person = null;
for (Person a : personData) {
if ((accountNumField.getText().equalsIgnoreCase(a.getaccountNum()))){
person = a;
break;
}
}
// CODE THAT DOES NOT WORK
if (accountNumField.getText().equals(person)){
errorMessage += "Account number already exist\n";
}
if (errorMessage.length() == 0) {
return true;
} else {
// Show the error message.
Dialogs.create()
.title("Invalid Fields")
.masthead("Please correct invalid fields")
.message(errorMessage)
.showError();
return false;
}
}
在我看来,你有不平衡的大括号(还有一个额外的行person = a;
后右大括号}),因此函数似乎要结束了之后循环。
我试图删除它,它不起作用。从我的理解是它会遍历整个列表,如果它发现它,它将它分配给人 – Onedaynerd 2014-10-05 03:05:28
@Onedaynerd那么它返回什么?或者说,该计划是做什么的?它甚至编译? – DreadHeadedDeveloper 2014-10-05 03:05:59
我的程序编译它就是那些能够工作的代码行。我不知道错误在哪里。如果它的方式,我试图从另一个类或循环本身访问列表是不workin – Onedaynerd 2014-10-05 03:10:56
我认为你需要做只是为了获得均衡
所有的花括号如果你已经在你的问题中所示是不是你的实际代码,请邮寄真正的代码,你的错误信息是什么。你发布的内容有太多的语法错误,任何人都可以用你的逻辑来帮助你。
private boolean isInputValid() {
String errorMessage = "";
if (accountNumField.getText() == null || accountNumField.getText().length() == 0) {
errorMessage += "Not a valid account number!\n";
}
//TO LOOP THROUGH THE LIST
Person person = null;
for (Person a : personData) {
if ((accountNumField.getText().equalsIgnoreCase(a.getaccountNum()))) {
person = a;
// } -- nPn COMMENETED OUT LINE
// break; -- nPn COMMENETED OUT LINE
}
}
// CODE THAT DOES NOT WORK
if (accountNumField.getText().equals(person)){
errorMessage += "Account number already exist\n";
} // -- nPn ADDED CURLY BRACE
if (errorMessage.length() == 0) {
return true;
} else {
// Show the error message.
Dialogs.create()
.title("Invalid Fields")
.masthead("Please correct invalid fields")
.message(errorMessage)
.showError();
return false;
}
} // --nPn ADDED CURLY BRACE
大括号只是错字的eclipse总是要求我在编译程序之前纠正它们 – Onedaynerd 2014-10-05 04:30:57
我们将需要比此更多的信息,例如什么是accountNumField?我们可能还需要了解更多关于Person的信息... – DreadHeadedDeveloper 2014-10-05 02:55:53
accountNumField是一个文本框的分配,用户可以在其中输入想要的帐号 – Onedaynerd 2014-10-05 02:59:32
ok,那么Person呢?我问,因为你有行accountNumField.getText()。等于(人),这是否意味着人员扩展字符串或东西? equals()方法在这种情况下甚至可以使用吗? – DreadHeadedDeveloper 2014-10-05 03:04:05