利用reflection动态调用getter,setter。并返回该DTO。
但是DTO的类型是固定的与Class<类型>冲突
private KdsktCbmNyukinYoteiShiwake setCbmNyukinYoteiShiwakeItem(
KdsktCbmNyukinYoteiShiwake kdsktcbmnyukinyoteishiwake, String setteival, String itemid, String dbdatatype,
Integer dbdataintegerlength, Integer dbdatadecimallength)
{
Class< ?> c = Class.forName("jp.co.meiji.kd.domain.entity.KdsktCbmNyukinYoteiShiwake");
Object obj = c.newInstance();
try {
Method metSet = obj.getClass().getMethod("setKaishaCd", String.class);
metSet.invoke(obj, "S0001");
Method metGet = obj.getClass().getMethod("getKaishaCd");
metSet.setAccessible(true);
metGet.setAccessible(true);
log.debug(metGet.invoke(obj).toString());
} catch (Exception e) {
e.printStackTrace();
}
return c;
}
型不一致:无法从Clases<> 类型转变为 KdsktCbmNyukinYoteiShiwak类型
最终希望能将c中set的结果返回
你返回错了吧!你看看哪个是你需要的。
public class Test {
private Logger log = LoggerFactory.getLogger("Test");
private KdsktCbmNyukinYoteiShiwake setCbmNyukinYoteiShiwakeItemReObject(
KdsktCbmNyukinYoteiShiwake kdsktcbmnyukinyoteishiwake, String setteival, String itemid, String dbdatatype,
Integer dbdataintegerlength, Integer dbdatadecimallength) throws Exception {
Class<?> c = Class.forName("jp.co.meiji.kd.domain.entity.KdsktCbmNyukinYoteiShiwake");
Object obj = c.newInstance();
try {
Method metSet = obj.getClass().getMethod("setKaishaCd", String.class);
metSet.invoke(obj, "S0001");
Method metGet = obj.getClass().getMethod("getKaishaCd");
metSet.setAccessible(true);
metGet.setAccessible(true);
log.debug(metGet.invoke(obj).toString());
} catch (Exception e) {
e.printStackTrace();
}
return (KdsktCbmNyukinYoteiShiwake) obj;
}
private String setCbmNyukinYoteiShiwakeItemReString(
KdsktCbmNyukinYoteiShiwake kdsktcbmnyukinyoteishiwake, String setteival, String itemid, String dbdatatype,
Integer dbdataintegerlength, Integer dbdatadecimallength) throws Exception {
Class<?> c = Class.forName("jp.co.meiji.kd.domain.entity.KdsktCbmNyukinYoteiShiwake");
Object obj = c.newInstance();
try {
Method metSet = obj.getClass().getMethod("setKaishaCd", String.class);
metSet.invoke(obj, "S0001");
Method metGet = obj.getClass().getMethod("getKaishaCd");
metSet.setAccessible(true);
metGet.setAccessible(true);
log.debug(metGet.invoke(obj).toString());
} catch (Exception e) {
e.printStackTrace();
}
return ((KdsktCbmNyukinYoteiShiwake) obj).getKaishaCd();
}
}
返回错了,应该返回obj
(KdsktCbmNyukinYoteiShiwake) obj