Class<T> 泛型获取T的class
引用地址:https://www.cnblogs.com/zhaoyanhaoBlog/p/11246354.html
getClass().getGenericSuperclass()返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type
然后将其转换ParameterizedType。
getActualTypeArguments()返回表示此类型实际类型参数的 Type 对象的数组。
[0]就是这个数组中第一个了。
简而言之就是获得超类的泛型参数的实际类型。
|
1
2
3
4
5
6
7
8
|
public class GenericDAO<T> { private Class<T> entityClass; protected GenericDAO() { Type type = getClass().getGenericSuperclass(); Type trueType = ((ParameterizedType) type).getActualTypeArguments()[0]; this.entityClass = (Class<T>) trueType; }} |
子类
|
1
2
|
public class OptionManager extends GenericDAO<MSGC_OPTION> {} |
测试类
|
1
2
3
4
5
|
public class OracleTest { public static void main(String[] args) throws Exception { OptionManager manager = new OptionManager(); }} |
这样在你new OptionManager();以后超类里的entityClass就是子类那里的public class OptionManager extends GenericDAO<MSGC_OPTION> 里面的MSGC_OPTION所对应的class对象了..
restTemplate 返回List方式小结
HTTP GET(一)方式:
public List<UtMerFeedback> findUtMerFeedbackListByMerid(String merid) {
HttpHeaders headers = new HttpHeaders();
headers.set("Accept", "application/json");
HttpEntity entity = new HttpEntity(headers);
Map<String, String> params = new HashMap<String, String>();
params.put("merid", merid);
String url = restServerAdd + "/merchants/findUtMerFeedbackListByMerid?merid="+merid;
ParameterizedTypeReference<List<UtMerFeedback>> responseType = new ParameterizedTypeReference<List<UtMerFeedback>>() {};
ResponseEntity<List<UtMerFeedback>> resp = restTemplate.exchange(url, HttpMethod.GET, entity, responseType,params);
List<UtMerFeedback> list = resp.getBody();
return list;
}
HTTP GET(二)方式(查询结果不能编辑):
public List<UtProjectOnly> getProjectList() {
String url = restServerAdd + "/project/getProjectList";
UtProjectOnly[] model = restTemplate.getForObject(url, UtProjectOnly[].class);
return Arrays.asList(model);
}
HTTP POST方式:
public List<UtProjectAtt> getProjectFileList(String pid) {
String url = restServerAdd + "/project/getProjectFileList";
MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
paramMap.add("pid", pid);
HttpHeaders headers = new HttpHeaders();
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(paramMap, headers);
ResponseEntity<List<UtProjectAtt>> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, new ParameterizedTypeReference<List<UtProjectAtt>>() {
});
List<UtProjectAtt> checks = response.getBody();
return checks;
}


浙公网安备 33010602011771号