作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个Java代码:
public abstract class BaseObject implements Serializable {
...
}
public interface MessageConverter {
<T extends BaseObject> T getMessage(String message, Class<T> requiredType);
}
public abstract class AbstractMessageConverter implements MessageConverter {
...
}
public class WebMessageConverter extends AbstractMessageConverter {
public <T extends BaseObject> T getMessage(String message, Class<T> requiredType) {
final T data;
...
return data;
}
}
public class Utils {
private static <T> T getItemType(String value, Class<T> requiredType, MessageConverter messageConverter) throws Exception
{
if (BaseObject.class.isAssignableFrom(requiredType))
{
return (T) messageConverter.getMessage(value, requiredType);
}
return (T) toRequiredType(value, requiredType);
}
public static <T> T toRequiredType(Object value, Class<T> requiredType)
{
final T data;
...
return data;
}
}
以下行:
return (T) messageConverter.getMessage(value, requiredType);
原因:
The method getMessage(String, Class<T extends BaseObject>)in the type MessageConverter is not applicable for the arguments (String, Class<T>)
如何修复此错误?
最佳答案
WebMessageConverter
上的签名期望子类型为 BaseObject
当它声明<T extends BaseObject>
时.
Utils
上的签名没有这样的限制,因为它使用简单的 <T>
,例如允许Class<String>
要使用的。这就是编译器提示的原因。
要解决此问题,请在 Utils
中声明方法。像这样:
private static <T extends BaseObject> T getItemType(String value, Class<T> requiredType, MessageConverter messageConverter) throws Exception
关于java - MessageConverter 类型中的方法 fromMessage(String, Class<T extends BaseObject>) 不适用于参数 (String, Class<T>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51297100/
我有这个Java代码: public abstract class BaseObject implements Serializable { ... } public interface Me
我是一名优秀的程序员,十分优秀!