编译时类型不匹配,这是为何问题所在?

2026-04-01 23:191阅读0评论SEO资讯
  • 内容介绍
  • 相关推荐

本文共计369个文字,预计阅读时间需要2分钟。

编译时类型不匹配,这是为何问题所在?

我有一种使用此接口的方法:public MessageConverter getDefaultConvert(); 我还有一种使用此接口的方法:public MessageConverter getDefaultConverterFor(Class inputClass, Class outputClass); 这里的方法是:您有一个需要转换的对象。

我有一个使用此接口的方法:publicMessageConvertergetDefaultConvert

我有一个使用此接口的方法:

public MessageConverter getDefaultConverterFor(Class inputClass, Class outputClass);

这里的想法是您有一个要转换为B型消息的类型为A的消息,并且想要从可用的已注册转换器的存储库中获取一个转换器来执行此操作.不幸的是,我很难按预期的那样使两端的类型都能正常工作.

更具体地说,我正在尝试这样做:

编译时类型不匹配,这是为何问题所在?

public Message convert(M m){ MessageConverter cOnverter= getDefaultConverterFor(m.getClass(), DictMessage.class); return converter.convert(m); }

(即获取任何类型的消息并将其转换为DictMessage),但是在getDefaultConverter行上却给了我一个编译错误:

Type mismatch: cannot convert from MessageConverter to MessageConverter".

我什至不知道为什么会这样,更不用说如何解决了.我以为这与getClass返回的类与M不太匹配有关,但我真的不知道.我可以相信这可能实际上是行不通的,但是我想不出任何打破它的特定示例……有什么想法吗?

解决方法:

我在Object.getClass()返回Class时遇到问题一段时间.编译器不知道m.getClass()是Class.但您可以通过强制转换解决此问题.

@SuppressWarnings("unchecked")MessageConverter cOnverter= getDefaultConverterFor((Class) m.getClass(), DictMessage.class);

本文共计369个文字,预计阅读时间需要2分钟。

编译时类型不匹配,这是为何问题所在?

我有一种使用此接口的方法:public MessageConverter getDefaultConvert(); 我还有一种使用此接口的方法:public MessageConverter getDefaultConverterFor(Class inputClass, Class outputClass); 这里的方法是:您有一个需要转换的对象。

我有一个使用此接口的方法:publicMessageConvertergetDefaultConvert

我有一个使用此接口的方法:

public MessageConverter getDefaultConverterFor(Class inputClass, Class outputClass);

这里的想法是您有一个要转换为B型消息的类型为A的消息,并且想要从可用的已注册转换器的存储库中获取一个转换器来执行此操作.不幸的是,我很难按预期的那样使两端的类型都能正常工作.

更具体地说,我正在尝试这样做:

编译时类型不匹配,这是为何问题所在?

public Message convert(M m){ MessageConverter cOnverter= getDefaultConverterFor(m.getClass(), DictMessage.class); return converter.convert(m); }

(即获取任何类型的消息并将其转换为DictMessage),但是在getDefaultConverter行上却给了我一个编译错误:

Type mismatch: cannot convert from MessageConverter to MessageConverter".

我什至不知道为什么会这样,更不用说如何解决了.我以为这与getClass返回的类与M不太匹配有关,但我真的不知道.我可以相信这可能实际上是行不通的,但是我想不出任何打破它的特定示例……有什么想法吗?

解决方法:

我在Object.getClass()返回Class时遇到问题一段时间.编译器不知道m.getClass()是Class.但您可以通过强制转换解决此问题.

@SuppressWarnings("unchecked")MessageConverter cOnverter= getDefaultConverterFor((Class) m.getClass(), DictMessage.class);