方法重新使用Java

时间:2014-06-09 05:29:31

标签: java jtextfield java-8

我正在开发一个项目,其中我有一个方法来知道JTextField是否为空,但我想知道一种方法只实现该方法一次并发送几个JTextFields组件来检查它们是否为空或不存在,如果是的话,请你告诉我怎么做?,这是我的示例代码。

public static void Vacio(JTextField txt){
    if(txt.getText().trim().equals(null)==true){/*Message*/}
}

此外,我想知道我是否可以事先使用一些Lambda表达式改进方法。

3 个答案:

答案 0 :(得分:1)

使用:

 if(txt.getText().trim().length()==0)  
    //Do something  

您的代码无效,因为空字符串("")不是null字符串。我只是检查TextField的剪裁length()是否为0

示例函数:

public boolean isEmpty(JTextField jtf)
{
  try{
     jtf.getText();
  }catch(NullPointerException e){return true;}
  if(jtf.getText().trim().length() == 0)
     return true;
  return false;
}

答案 1 :(得分:0)

明确检查null,然后与""进行比较。

public static void Vacio(JTextField txt){
     String str = null;
    try {
        str = txt.getText();
     }
     catch (NullPointerException npe) {
        System.out.println("The document is null!");
        return;
     }
    if(str.trim().equals("")==true){/*Message*/}
}

答案 2 :(得分:0)

我无法想象添加Lambda表达式如何改善你想要做的事情(?)。

无论如何,要检查我可能使用的空字符串:

field.getText().trim().isEmpty()

您不需要检查null,但是如果JTextField中的基础文档为null,则需要捕获NullPointerException。

对于问题的其他部分,如果确实想要在一个方法中检查多个JTextField,则可以将它们作为可变长度参数列表传递:

public static void vacio(JTextField... fields) {
    for(JTextField field : fields) {
        try {
            if( field.getText().trim().isEmpty() ) {
                 // do something
            }
        }
        catch(NullPointerException ex) {
            // handle exception (maybe log it?)
        }
    }
}

并称之为:

vacio(field1, field2, field3);

但是,一般来说,保持功能简洁,只做一件事通常比试图使功能做得太多更好。

除了最后一个,你的方法名为Vacio,但java命名约定建议你应该使用大小写混合字母组成方法名称,从小写字母开始,并用大写字母开始每个后续单词。