警告: Can't transform property 'acceptEvent' from java.lang.String into java.util.List. Will register

简介: 版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcs_dn/article/details/42613325 ...
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcs_dn/article/details/42613325

警告: Can't transform property 'acceptEvent' from java.lang.String into java.util.List. Will register a default Morpher

产生错误的代码:

import net.sf.json.JSONObject;	
public static <T> T jsonToObject(String jsonString, Class<T> pojoCalss) {
		try{
			Object pojo;
			JSONObject jsonObject = JSONObject.fromObject(jsonString);
			
			pojo = JSONObject.toBean(jsonObject, pojoCalss);
			@SuppressWarnings("unchecked")
			T t = (T)pojo;
			return t;
		}catch(Exception ex){
			return null;
		}
	}
需要实例化的实体类如下:

import java.io.Serializable;
import java.util.List;

/**
 * 传送的消息数据对象
 * 
 * @author testcs_dn
 */
public final class Data implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 387186819023110091L;

	// 客户端id
	private String id;
	// 客户端ip
	private String ip;
	// 客户端过期时间
	private int clientTimeOut = 30 * 1000;
	// 服务端过期时间
	private int serverTimeOut = 60 * 1000;
	// 传送数据
	private Object data;
	// 时间戳
	private long timeStamp;
	// 消息类型
	private String operate;
	// 消息返回状态(未处理,已处理(成功、失败))
	private String state;
	// 客户端接收的事件类型
	private List<String> acceptEvent;
	
	public Data() {
	}

	public String getOperate() {
		return operate;
	}

	public void setOperate(String operate) {
		this.operate = operate;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public long getTimeStamp() {
		return timeStamp;
	}

	public void setTimeStamp(long timeStamp) {
		this.timeStamp = timeStamp;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getIp() {
		return ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}

	public int getClientTimeOut() {
		return clientTimeOut;
	}

	public void setClientTimeOut(int clientTimeOut) {
		this.clientTimeOut = clientTimeOut;
	}

	public int getServerTimeOut() {
		return serverTimeOut;
	}

	public void setServerTimeOut(int serverTimeOut) {
		this.serverTimeOut = serverTimeOut;
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	@Override
	public String toString() {
		return "Data [id=" + id + ", ip=" + ip + ", clientTimeOut="
				+ clientTimeOut + ", serverTimeOut=" + serverTimeOut
				+ ", data=" + data + ", timeStamp=" + timeStamp + ", operate="
				+ operate + ", state=" + state + ", acceptEvent=" + acceptEvent
				+ "]";
	}

	public List<String> getAcceptEvent() {
		return acceptEvent;
	}

	public void setAcceptEvent(List<String> acceptEvent) {
		this.acceptEvent = acceptEvent;
	}
}
解决方案:

参考:http://www.iteye.com/problems/675

需要使用JSONUtils.getMorpherRegistry().registerMorpher( );注册对应的Morpher,但研究了一番还没搞清楚自定义的Morpher怎么写。

目录
相关文章
|
18天前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
18天前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
24天前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
22天前
|
Java 数据库
成功解决:java.sql.SQLSyntaxErrorException: Unknown column ‘origin_name‘ in ‘field list‘
这篇文章讲述了作者在使用SpringBoot和Mybatis-plus时遇到的一个数据库字段映射问题,即SQLSyntaxErrorException错误,原因是实体类字段和数据库字段不匹配。文章提供了两种解决方法:一是关闭自动驼峰命名转换配置,二是修改数据库字段以匹配实体类字段,最终成功解决了问题。
成功解决:java.sql.SQLSyntaxErrorException: Unknown column ‘origin_name‘ in ‘field list‘
|
22天前
|
前端开发 Java
成功解决:java.lang.String cannot be cast to java.lang.Integer
这篇文章记录了作者在使用Axios二次封装时遇到的一个Java类型转换问题,即前端传递的字符串参数不能直接转换为Integer类型,文章提供了正确的转换方法来解决这个问题。
成功解决:java.lang.String cannot be cast to java.lang.Integer
|
24天前
|
存储 安全 Java
java集合框架复习----(2)List
这篇文章是关于Java集合框架中List集合的详细复习,包括List的特点、常用方法、迭代器的使用,以及ArrayList、Vector和LinkedList三种实现类的比较和泛型在Java中的使用示例。
java集合框架复习----(2)List
|
24天前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
8天前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
23 5
|
6天前
|
Java API 开发者
代码小妙招:用Java轻松获取List交集数据
在Java中获取两个 `List`的交集可以通过 `retainAll`方法和Java 8引入的流操作来实现。使用 `retainAll`方法更为直接,但会修改原始 `List`的内容。而使用流则提供了不修改原始 `List`、更为灵活的处理方式。开发者可以根据具体的需求和场景,选择最适合的方法来实现。了解和掌握这些方法,能够帮助开发者在实际开发中更高效地处理集合相关的问题。
8 1
|
16天前
|
存储 Java API
【Java高手必备】揭秘!如何优雅地对List进行排序?掌握这几种技巧,让你的代码瞬间高大上!
【8月更文挑战第23天】本文深入探讨了Java中对List集合进行排序的各种方法,包括使用Collections.sort()、自定义Comparator以及Java 8的Stream API。通过示例代码展示了不同情况下如何选择合适的方法:从简单的整数排序到自定义类对象的排序,再到利用Comparator指定特殊排序规则,最后介绍了Stream API在排序操作中的简洁应用。理解这些技术的区别与应用场景有助于提高编程效率。
17 4
下一篇
DDNS