1、方法参数为泛型类型
private <T> List<T> changeDatas( List<DataInfo> dataes,Class<T> a) { List<T> ans = new ArrayList<T>(); try { if (!CollectionUtils.isEmpty(dataes)) { for (DataInfo _data : dataes) { T newD = a.newInstance(); BeanUtils.copyProperties(newD, _data); ans.add(newD); } } } catch (Exception e) { e.printStackTrace(); } return ans; }
2、自己写的一个关于序列化,反序列化,json转换的工具类,使用到泛型类型的例子
public class MockUtil { public static FitSdpShoppingDto morkShoppingDto(){ return MockUtil.deserializeObject("d:\\cache\\123123123.txt",FitSdpShoppingDto.class); } public static void morkCacheShoopingDto(FitSdpShoppingDto shoppingDto){ MockUtil.serializeObject(shoppingDto,"d:\\cache\\123123123.txt"); } /** * 读取文件 * @param fileName * @return */ public static String readFile(String fileName) { InputStream in; try { in = new FileInputStream(fileName); return IOUtils.toString(in, "GBK"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 写入文件 * * @param fileName * @param contant */ public static void writeFile(String fileName, String contant) { PrintWriter out; try { out = new PrintWriter(new BufferedWriter(new FileWriter(fileName))); out.print(contant); out.close(); } catch (IOException e) { System.out.println("读写文件出现异常!"); } catch (Exception e) { System.out.println("出现异常"); } } public static void writeJsonToFile(String fileName, Object contant) { PrintWriter out; try { out = new PrintWriter(new BufferedWriter(new FileWriter(fileName))); out.print(toJsonStr(contant)); out.close(); } catch (IOException e) { System.out.println("读写文件出现异常!"); } catch (Exception e) { System.out.println("出现异常"); } } /** * 从json文件中解析json串并转换成java类型 * * @param name * @param clazz * @return */ public static <T> T createFromJsonFile(String name, TypeReference clazz) { try { String sqlFlie = readFile(name); String result = sqlFlie; if (StringUtils.isNotBlank(result)) { ObjectMapper objectMapper = JSONMapper.getInstance(); return (T) objectMapper.readValue(result, clazz); } return null; } catch (Exception ew) { ew.printStackTrace(); return null; } } /** * 从json文件中解析json串并转换成java类型 * * @param name * @param clazz * @return */ public static <T> T createFromJsonFile(String name, Class<T> clazz) { try { String sqlFlie = readFile(name); String result = sqlFlie; if (StringUtils.isNotBlank(result)) { ObjectMapper objectMapper = JSONMapper.getInstance(); return (T) objectMapper.readValue(result, clazz); } return null; } catch (Exception ew) { ew.printStackTrace(); return null; } } /** * 序列化对象保存到文件中. * * @param shoppingDto * @param name */ public static void serializeObject(Object shoppingDto, String name) { ObjectOutputStream oo; try { oo = new ObjectOutputStream(new FileOutputStream(new File(name))); oo.writeObject(shoppingDto); System.out.println("对象序列化成功!"); oo.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 从文件中反序列化对象. * * @param name * @param clazz * @return */ public static <T> T deserializeObject(String name, Class<T> clazz) { ObjectInputStream ois; try { ois = new ObjectInputStream(new FileInputStream(new File(name))); T person = (T) ois.readObject(); System.out.println("对象反序列化成功!"); return person; } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 解析对象为json串. * * @param obj * @return */ public static String toJsonStr(Object obj) { try { return JSONMapper.getInstance().writeValueAsString(obj); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 解析json字符串为java对象. * * @param obj * @param clazz * @return */ public static <T> T parseJsonStr(String str, Class<T> clazz) { try { return (T) JSONMapper.getInstance().readValue(str, clazz); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 解析json字符串为java对象. * * @param str * @param clazz * @return */ public static <T> T parseJsonStr(String str, TypeReference<T> clazz) { try { ObjectMapper objectMapper = JSONMapper.getInstance(); objectMapper.configure( JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); return objectMapper.readValue(str, clazz); } catch (Exception e) { e.printStackTrace(); } return null; } public static void main(String[] aegs) throws Exception { Long a = 1481694879609L; System.out.println(DateUtils.parseDate(a, "yyyy-MM-dd"));; // Date d1 = DateUtils.parseDate("2016-12-11"); // System.out.println(d1.getTime()); // // Date d2 = DateUtils.parseDate("2016-12-13"); // System.out.println(d2.getTime()); // String inputStr = readFile("d:\\zipstr.txt"); // String callRequestStr = ZipUnZipUtils.getInstance().unzipBase642String(inputStr,"UTF-8"); // System.out.println(callRequestStr); // System.out.println(System.currentTimeMillis()); // FlightSearchResult<FlightSearchFlightInfoDto> goFlightSearchResult2 = MockUtil // .createFromJsonFile( // "d:\\new_flight.txt", // new TypeReference<FlightSearchResult<FlightSearchFlightInfoDto>>() { // }); // String sqlFlie = readFile("d:\\老的查询往返程机票的东西.txt"); // ObjectMapper objectMapper = JSONMapper.getInstance(); // FlightSearchResult<FlightSearchFlightInfoDto> flightSearchResult = // objectMapper // .readValue( // sqlFlie, // new TypeReference<FlightSearchResult<FlightSearchFlightInfoDto>>() { // }); // List<FlightSearchFlightInfoDto> result = // flightSearchResult.getResults(); // for(FlightSearchFlightInfoDto d:result){ // writeFile("d:\\"+System.currentTimeMillis()+".txt", // getJsonStr(d)+"\n\n\n" ); // } } }
3、解析json的时候,可能出现解析不了报错的情况,使用下面的jsonmap配置:
ObjectMapper objectMapper = JSONMapper.getInstance(); objectMapper.configure( JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); return objectMapper.readValue(str, clazz);
相关推荐
java泛型实例讲解代码
该资源对应博客泛型读书笔记-java基础入门必备中的代码的完整部分,代码只有两个文件,对应两个类,可自行修改值调试。
java 一个关于泛型的简单例子 java 一个关于泛型的简单例子 java 一个关于泛型的简单例子
C# where泛型约束测试代码
Java中的泛型方法演示代码
.net,C# 泛型示例代码.net,C# 泛型示例代码.net,C# 泛型示例代码
Java泛型文章原代码
本代码资源是一个关于Java语言中泛型的讲解案例代码。通过使用实际的示例代码,详细讲解了泛型的定义、用法和优势。...希望这个代码资源能够帮助你更好地理解和应用Java中的泛型概念。祝你编程愉快!
jdk1.5的新特性泛型的实例代码,很好的学习资料
3个泛型代码例子,都是从csdn别人的资源里下载的,免费分享,有普通泛型例子和SSH泛型例子
泛型和容器,仅供初学者,如果有人和小编一样能够对Java语言有着热诚之心,请下载学习,和小编一起学习。
Struts2、Hibernate、Spring整合的泛型DAO (本人评价: 代码开发效率提高30% 代码出错率减少70%) 对于大多数开发人员,系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复...
使用了泛型的dao,在ssh里的应用,非常的简便好用
泛型类、泛型方法、泛型接口、泛型委托 泛型类、泛型方法、泛型接口、泛型委托
java 泛型 容器 堆栈
泛型集合解释的非常好泛型集合泛型集合泛型集合解释的非常好泛型集合泛型集合泛型集合解释的非常好泛型集合泛型集合泛型集合解释的非常好泛型集合泛型集合
关于java的泛型.doc 关于java的泛型.doc
java 带两个类型参数的泛型 java 带两个类型参数的泛型
自己开发的支持泛型的代码生成工具,包括界面后台加载代码,可以自己进行二次修改。
Java中的泛型源代码