gpt4 book ai didi

jax-rs - ParamConverterProvider 方法返回类型不匹配

转载 作者:行者123 更新时间:2023-12-02 06:40:30 28 4
gpt4 key购买 nike

在下面的代码片段中,我在 Provider 类中不断收到以下错误。

Type mismatch: cannot convert from DemoParamConverter to ParamConverter

package com.ofss.shop.application.translators;

import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import javax.ws.rs.ext.ParamConverter;
import javax.ws.rs.ext.Provider;

@Provider
public class DemoParamConverterProvider {

private final DemoParamConverter dpc = new DemoParamConverter();

public <T> ParamConverter<T> getConverter(Class<T> rawType,
Type genericType, Annotation[] annotations) {

return dpc;
}


}

package com.ofss.shop.application.translators;
import javax.ws.rs.ext.ParamConverter;
import com.restfully.shop.domain.JavaConversionTarget;
public class DemoParamConverter implements ParamConverter<JavaConversionTarget> {

@Override
public JavaConversionTarget fromString(String value) {

JavaConversionTarget jct = new JavaConversionTarget();
jct.setJctName(value);
return jct;
}

@Override
public String toString(JavaConversionTarget value) {
return value.toString();
}

}

public class JavaConversionTarget {

private String jctName;

/**
* @return the jctName
*/
public String getJctName() {
return jctName;
}

/**
* @param jctName the jctName to set
*/
public void setJctName(String jctName) {
this.jctName = jctName;
}

@Override
public String toString() {
return "JavaConversionTarget-toString with jctName"+ jctName;
}

}

我正在使用 Eclipse Kepler、JDK1.7、Jersey2.4。

最佳答案

我遇到了同样的问题,最终返回了一个匿名的ParamConverter:

@Provider
public class MyConverterProvider implements ParamConverterProvider {

@Override
public <T> ParamConverter<T> getConverter(final Class<T> rawType, final Type genericType,
final Annotation[] annotations) {
if (rawType.getName().equals(MyBean.class.getName())) {
return new ParamConverter<T>() {

@Override
public T fromString(String value) {
MyBean myBean = new MyBean();
myBean.setValue(value);
return rawType.cast(myBean);
}

@Override
public String toString(T myBean) {
if (myBean == null) {
return null;
}
return myBean.toString();
}
};
}
return null;
}
}

我推了一个例子here如果有帮助的话。

关于jax-rs - ParamConverterProvider 方法返回类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24256095/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com