把修改的传入的值为空的抛出

简介: 把修改的传入的值为空的抛出
/**
* 把修改的传入的值为空的抛出
* @param o
* @param c
* @param
* @return
*/
public static T info(T o, T c){
try {
//获取o,c类的方法
Method[] m1=o.getClass().getMethods();
Method[] m2=c.getClass().getMethods();
//遍历m2的get方法 method.invoke(c)通过反射判断m2的方法不为空
for (Method method : m2) {
if (method.getName().startsWith(“get”)&&method.invoke(c)!=null) {
boolean isCopy=true;
if(method.getReturnType().getName().equals(“int”)){
isCopy=false;
}else if(method.getReturnType().getName().equals(“Date”)){
isCopy=false;
}else if(method.getReturnType().getName().equals(“boolean”)){
isCopy=false;
}
if(isCopy){
// method.getName().replaceFirst method的方法成功则返回替换的set方法,失败则返回get方法。
String n=method.getName().replaceFirst(“get”,”set”);
//判断m1,n的方法是否存在
Method m=isMethodExist(m1,n);
if(m!=null){
//如果存在,则返回m的方法
m.invoke(o,method.invoke(c));
//entity.setName(info.getName());
}
}
}
}
}catch (Exception e){
e.printStackTrace();
return null;
}
return o;
}
private static  Method isMethodExist(Method[] methods, String methodName){
    for (Method method : methods) {
        if (method.getName().equals(methodName)) {
            return method;
        }
    }
    return null;
}
使用方法
// ProductInfo source=null;
// if(productInfo.getId()!=null){
// source = new ProductEntity( ).buildId( productInfo.getId()).buildCode( productInfo.getId() ).findOne( );
// info( source,productInfo );
// System.out.println(“=========”+source+”========”);
// }


相关文章
|
6月前
通过反射获取方法返回的类型
通过反射获取方法返回的类型
|
JSON 小程序 JavaScript
小程序根据返回值是否为空判断标签是否显示
小程序根据返回值是否为空判断标签是否显示
92 0
|
1天前
|
Python
怎样在函数中返回多个值?
怎样在函数中返回多个值?
|
3月前
|
Go 数据处理
深入理解函数返回多个值的机制
【8月更文挑战第31天】
12 0
|
6月前
|
小程序 区块链
血常规常见判断参数
血常规常见判断参数
48 0
|
6月前
|
定位技术 C++ Python
C++一个函数返回两个或更多个返回值的方法
C++一个函数返回两个或更多个返回值的方法
172 1
|
6月前
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
36 0
|
监控 数据挖掘 数据格式
数据异常值处理-下
数据异常值处理-下
155 0
|
C++
使用C++模板判断两个类型是否一样
使用C++模板判断两个类型是否一样
140 0