我正在开发一个项目,其中我有一个方法来知道JTextField是否为空,但我想知道一种方法只实现该方法一次并发送几个JTextFields组件来检查它们是否为空或不存在,如果是的话,请你告诉我怎么做?,这是我的示例代码。
public static void Vacio(JTextField txt){
if(txt.getText().trim().equals(null)==true){/*Message*/}
}
此外,我想知道我是否可以事先使用一些Lambda表达式改进方法。
答案 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命名约定建议你应该使用大小写混合字母组成方法名称,从小写字母开始,并用大写字母开始每个后续单词。