有时候大家会有判断新创建对象各成员是否为null的需求,通过反简单处理,可满足此需求:
import java.lang.reflect.Field;
/**
*
* @author elitesunry
* @mail rysun@qq.com
* @create 2011-5-10 7:21:30
*/
public abstract class ContentNullComparable {
public boolean isEmpty(Object obj) {
return isContentEmpty(this.getClass(), obj);
}
private boolean isContentEmpty(Class<?> clazz, Object obj) {
Field[] fields = clazz.getDeclaredFields();
int nullFiledCount = 0;
for (Field field : fields) {
Object fileldValue = null;
try {
// 这里不对复杂成员对象做嵌套判断
fileldValue = field.get(obj);
} catch (Exception e) {
// ignore
}
if (fileldValue == null) {
nullFiledCount++;
if (nullFiledCount == fields.length) {
return true;
}
}
}
return false;
}
}
继承此类即可:
/**
* @author elitesunry
* @mail rysun@qq.com
* @create 2011-5-7 11:48:27
*/
public class EmptyClass {
public static void main(String[] args) {
A a1 = new A();
System.out.println(a1.isEmpty(a1));
A a2 = new A();
a2.a = "value";
System.out.println(a2.isEmpty(a2));
A a3 = new A();
a3.obj = new A();
System.out.println(a3.isEmpty(a3));
}
}
class A extends ContentNullComparable {
String a;
String b;
A obj;
}
由于java的单继承特性,这样的做法可能会导致你的类不能继承其他的类,你可以采用代理对象的方式解决此问题:
class DelegateContentNullComparable extends ContentNullComparable {
...
}
class YourClass {
...
private DelegateContentNullComparable delegate;
...
delegate.isEmpty(...);
...
}
分享到:
相关推荐
java 判断对象是否为空.如String,Character,Object[]
主要介绍了Java判断对象是否为空(包括null ,"")的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
oraclesql判断值为空-Oracle-sqlserver的空值(null)判断.pdf
判断字符串是否为空 var strings = ''; if (string.length == 0) { alert('不能为空'); } 判断字符串是否为“空”字符即用户输入了空格 var strings = ' '; if (strings.replace(/(^s*)|(s*$)/g, )....
本人在工作中,从测试库往正式库中复制记录,用select for update 报错:ORA-01480:STR 绑定值的结尾 Null字符缺失 ,遂上网查找,都说是有非法字符(半个引号) 或者长度超长造成的。根据本人分析,应该不是上述原因...
java处理返回对象中字段为null的情况,返回为字符串
主要介绍了Java中String判断值为null或空及地址是否相等的问题,文中举了简单的例子对字符串类型的值和地址问题进行讲解,需要的朋友可以参考下
computer-organization-and-architecture Linda Null.
如果需要判断对象是否为空: <#if name??> …… </#if> 当然也可以通过设置默认值${name!”}来避免对象为空的错误。如果name为空,就以默认值(“!”后的字符)显示。 对象user,name为user的属性的...
这是一个工具类用于判断map中的键值对是否为空!普通判断若遇上空会报空指针异常!
使用@RequestBody标签接收json数据,参数类型不能用Sting 看这两个注解的作用 @RequestParam 是作用在形参列表上,RequestParam可以接受简单类型的属性,也可以接受对象类型。在前端传入的是json字符串,后台按字符...
二、如何在sql语句中判断为NULL的时间字段 假设表为:TestTable SN DateTime1 DateTime2 1 2011-10-24 2011-10-25 2 NULL 2011-10-26 3 2011-10-25 NULL 用case进行查询,若写成: select (case DateTime1 ...
你是否也为在Oracle里如何实现NULL的比较而犯愁呢?
本节主要介绍了JS判断变量是否为空是否null的方法,需要的朋友可以参考下
主要介绍了Java中判断对象是否为空的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
【IT十八掌徐培成】Java基础第03天-03.数组的定义-初始化-越界异常-Null异常.zip
2.const对象-NULL和nullptr-C++中创建对象数组.docx
NULL 博文链接:https://onestopweb.iteye.com/blog/2393876
主要介绍了还在用if(obj!=null)做非空判断,带你快速上手Optional,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
isEmpty : 判断对象是否为空 isNotEmpty: 判断对象是否非空