java反射调用返回类型问题

JAVA类中(假设为A)反射调用某目录下的class文件,然后返回一个自定义的类(假设是People吧)。再A中用强制转换把这个类转换为People,再eclipse下运行没有问题。但是把工程达成jar包后,运行报类型转换错误。
12.21日问题描述更新:
项目是一个spring boot的工程,其中有个方法接受传来的参数更具参数判断调用什么类
@RequestMapping("/MyFunction")
public A function(String param){

/**
*前面解析param,找到需要执行的代码并转为map形式
**/
Class<?> cls=***.loaderClass(classCode);//这里是分装的类加载器,classCode是根据参数解析出来的
Object obj=cls.newInstance();
Method method=cls.getMethod("f",Map.class);
A=(A)method.invoke(obj,map); //**注释【1】**

}

代码大概是这样的意思,然后.class文件是放在工程里自己创建的一个文件夹。现在再Eclipse里启动是没有问题的,但是把springboot程序打成一个jar后放在cmd中启动,就会有一个再注释【1】中的强制转换错误。我分别发现再Eclipse中A.class.hashCode和method.getGenericReturnType.hashCode是一样的,而再cmd中二者是不一样的。
同事说以前的工程直接打jar包是没有这种问题的,现在换了spring boot难道是这个的原因?

阅读 3.9k
1 个回答

maven打包会影响编译。
IDE是直接编译

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题