我的服务代码
public HashMap<String, Object> syncEmployees(Long updatedAt, String userId) {
HashMap<String, Object> outputMap = new LinkedHashMap<String, Object>();
**List<String>** outputEmployee = employeeDao.getEmployeeSyncDetails(updatedAt);
System.out.println("\n\n Size : "+outputEmployee.size()+"\nOutput : "+outputEmployee);
outputMap.put("employee", outputEmployee);
return outputMap;
}
返回类型的Dao代码是字符串 List(String)
的列表**List<String>** getEmployeeSyncDetails(@Param("updatedAt") long updatedAt);
.XML映射器和查询where方法返回 xyzModel 的列表
<resultMap id="xyzmap" type="xyzModel" >
<result property="userId" column="user_id" />
<result property="employeeCode" column="employee_code" />
<result property="designationId" column="designation_id" />
</resultMap>
<select id="getxyzDetails" resultMap="xyzmap">
SELECT
user_id, ua.employee_code, designation_id
FROM users
WHERE updated_at > #{updatedAt}
ORDER BY updated_at ASC
</select>
输出就像 尺寸:3 输出:[com.webapp.models。 xyzModel @ 1567524c,com.webapp.models。 xyzModel @ 7744c2cd,com.webapp.models。 xyzModel @ 43515de7]
我的问题是它是如何工作的? xyzmodel 如何在String列表中填充 实际上我的问题是XML mapper返回xyzModel,但如果我写任何其他模型,如UserModel或String或任何其他模型,它没有显示任何错误或完美执行正确的输出。如果我们处理这个列表,那么只有他发送错误 java.lang.ClassCastException
答案 0 :(得分:1)
在运行时,没有泛型的类型。
如果你自己编写getEmployeeSyncDetails
的代码,你的编译器会警告你这个。
在此处阅读有关java中的类型擦除的内容:https://docs.oracle.com/javase/tutorial/java/generics/erasure.html