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

简介: 警告: Can't transform property 'acceptEvent' from java.lang.String into java.util.List. Will register a default Morpher产生错误的代码:import net.

警告: 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怎么写。

目录
相关文章
|
16天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
15 0
|
1月前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
25 0
|
1月前
|
Java
Java String split()方法详细教程
Java String split()方法详细教程
23 0
|
1月前
|
安全 Java
Java StringBuffer 和 StringBuilder 类
Java StringBuffer 和 StringBuilder 类
16 0
|
1月前
|
存储 缓存 安全
【Java】Java中String不可变性的底层实现
【Java】Java中String不可变性的底层实现
16 0
|
28天前
|
Java
java8中List对象转另一个List对象
java8中List对象转另一个List对象
37 0
|
1天前
|
存储 缓存 Java
|
2天前
|
存储 编解码 算法
Java 的 String StringBuilder StringBuffer(上)
Java 的 String StringBuilder StringBuffer
24 0
|
25天前
|
Java
Java使用List去重的四中方式
Java使用List去重的四中方式
19 6
|
29天前
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
18 0