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

简介: 把修改的传入的值为空的抛出
/**
* 把修改的传入的值为空的抛出
* @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+”========”);
// }


相关文章
|
1月前
通过反射获取方法返回的类型
通过反射获取方法返回的类型
14 1
|
5月前
|
JSON 小程序 JavaScript
小程序根据返回值是否为空判断标签是否显示
小程序根据返回值是否为空判断标签是否显示
37 0
|
2月前
|
小程序 区块链
血常规常见判断参数
血常规常见判断参数
15 0
|
4月前
|
定位技术 C++ Python
C++一个函数返回两个或更多个返回值的方法
C++一个函数返回两个或更多个返回值的方法
|
4月前
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
15 0
|
监控 数据挖掘 数据格式
数据异常值处理-下
数据异常值处理-下
103 0
|
测试技术 Android开发
怎么知道方法的参数有哪些类型呢?
怎么知道方法的参数有哪些类型呢?
179 0
在请求中传入不定长参数实现不同的逻辑处理的解决办法
在请求中传入不定长参数实现不同的逻辑处理的解决办法
|
API
@JsonView 处理返回值,实现接口返回想要的字段
@JsonView 处理返回的json ,实现返回需要的字段
1571 0
接口中带参方法,传入IB类型的数据
不同的接口有不同的方法 不同的类有不同的作用 不同的作用产生不一样的效果 不同的效果让程序看似复杂,实际简单... 比如此程序,看似复杂,实际就那么点事: 谁生成了谁,谁设置了谁,谁传入了谁,谁被谁调用,谁被谁输出. 如果还是不明白,好记一些就是这个程序之中有两个接口,两个类,四个方法...它们通过创建方法,设置方法的参数值, 有的方法通过其它的对象进行了调用,有的则通过了调用者本身(this),最后随着最后的大括号结束,程序结束了. 世界再次恢复了平静.将编程看作是一门艺术,而不单单是个技术。
1044 0