如何从表单中读取时忽略空值?

时间:2014-05-07 14:05:30

标签: java forms null

我的Java程序中有以下代码块:

Filter.sitesToBeFiltered.add(eid.getSite());
System.out.println("Entity Site added to ArrayList. ");

Filter.applicationsToBeFiltered.add(eid.getApplication());
System.out.println("Entity Application added to ArrayList. ");

Filter.IDsToBeFiltered.add(eid.getEntity());
System.out.println("Entity ID added to ArrayList");

Filter.positionsToBeFilteredX.add(position.getX());
System.out.println("Entity X position added to ArrayList. ");

Filter.positionsToBeFilteredY.add(position.getY());
System.out.println("Entity Y position added to ArrayList. ");

Filter.positionsToBeFilteredZ.add(position.getZ());
System.out.println("Entity Z position added to ArrayList. ");

目前,它将读取一组JTextField的值,并将每个值添加到关联的ArrayList。 (ArrayLists是整数或双精度的ArrayLists)。但是,无论值是String,int / double还是null ......

,它都会读取它们的值

我想添加一些错误检查代码,这样它只会将值添加到关联的ArrayList(如果它是正确的数据类型)。我试过通过用'if'语句包围上面显示的代码中的每个双行块来做到这一点,例如:

if(eid.getSite() != null){
    Filter.sitesToBeFiltered.add(eid.getSite());
    System.out.println("Entity Site added to ArrayList. ");
}

但是,如果我这样做,我在if语句中得到一个编译错误,上面写着“运算符!=未定义参数类型为int,null”......这是为什么?我应该用什么来检查JTextFields的值是否不等于null

4 个答案:

答案 0 :(得分:0)

尝试:

if(eid != null && eid.getSite()) {
   doSomething();
}

答案 1 :(得分:0)

如果是int(基本类型),如果没有设置值,则总是为0。 如果为0,则在UI侧未分配任何内容,则尝试忽略零if (!eid.getSite() == 0),但请确保0没有任何意义。 使用string,您可以将返回对象投射到string,如果它是Object类,并检查是否为空白

答案 2 :(得分:0)

我设法通过将错误检查代码添加到我从JTextFields读取值的位置来解决这个问题。所以而不是:

filter1Type = String.valueOf(Gui.filter1.getSelectedItem());
filter1Value = Integer.parseInt(Gui.filter1Text.getText());

我现在有:

filter1Type = String.valueOf(Gui.filter1.getSelectedItem());
if(isNumeric(Gui.filter1Text.getText()){
    filter1Value = Integer.parseInt(Gui.filter1Text.getText());
} else {
    filter1Value = 0;
    //Display some error message to the user here.
}

现在,输入filter1Text JTextField的非数字值将自动转换为0,并向用户显示一条消息,告诉他们输入有效值。

答案 3 :(得分:-2)

首先,您可以使用 trim 方法控制空 TextFields 。在将textField值指定给arraylist之前,必须使用此控件。

在控制textField值为空之前,请分配给arraylist。

 String controlledText = eid.getText().trim();//read contents of text area into 'TextField'
      if(!controlledText.equals("")){

      //doSometing();

      }