argument type mismatch错误,求助。。

CodingAndSleeping 2017-02-04 05:56:52
自学了Java能有3个多月了吧,今天做web版本的crud操作,实现是没问题的。
但是在处理ResultSet方面还想更方便一些,于是写了一个处理DQL操作的方法,通过传进去的ResultSet和需要封装对象的class字节码,来自动识别所有被封装的对象。但是在获取参数写入对象的时候报错了,搞了一上午没搞懂,在此求助!

...全文
694 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
李德胜1995 2017-02-04
  • 打赏
  • 举报
回复
pd.getWriteMethod().invoke(newInstance, rs.getObject(pd.getName()));参数类型不匹配
CodingAndSleeping 2017-02-04
  • 打赏
  • 举报
回复

package com.berry.shopping.dao.impl;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.berry.shopping.dao.IResultHandler;

public class ResultHandler implements IResultHandler {
	public <T> List<T> handler(ResultSet rs, Class<T> clz) {
		List<T> list = new ArrayList<>();
		try {
			BeanInfo beanInfo = Introspector.getBeanInfo(clz , Object.class);
			PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
			while (rs.next()) {
				T newInstance = clz.newInstance();
				for (PropertyDescriptor pd : pds) {
					pd.getWriteMethod().invoke(newInstance, rs.getObject(pd.getName()));
				}
			}
			return (List<T>) list;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧