IllegalStateException:无法将类型A的值转换为所需类型:找不到匹配的编辑器或转换策略

时间:2016-02-02 04:24:16

标签: java spring

IllegalStateException:无法将类型A的值转换为所需类型:找不到匹配的编辑器或转换策略

部署spring应用程序时获取此异常。实现类正在扩展另一个类以及实现接口,我怀疑这会引起这个问题。

我尝试了其他帖子中提到的一些解决方案。 已验证Interface已映射到bean 并且还尝试使用Inject和Qualifier注释。但这些都没有解决问题。

1 个答案:

答案 0 :(得分:0)

这通常发生在:

  1. 你正在使用基于接口的AOP(即:只有JDK代理,没有CGLIB或其他)
  2. 您的注入点引用类而不是接口
  3. 示例:

    public class MyConcreteClass extends MyAbstractClass implements MyInterface {
    // ... my class implementation
    
    }
    
    ...
    
    public class MyClient {
        ...
        // injection point: note that the parameter is MyAbstractClass and
        // not MyInterface
        public void setMyClass(MyAbstractClass injectedInstance) {
            ...
        }
        ...
    }
    

    由于JDK只代理接口而不代理类,因此会出现此错误。将其更改为setMyClass(MyInterface injectedInstance)可以解决问题。