IntelliJ Idea:代码片段上的红线有错误 "cannot access org.codehaus.jackson.ObjectCodec"
IntelliJIdea: red line on a code snippet with error "cannot access org.codehaus.jackson.ObjectCodec"
前言:
API method (import org.codehaus.jackson.map.ObjectMapper;
)
@SuppressWarnings("unchecked")
public <T> T readValue(JsonParser jp, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
{
// !!! TODO
// _setupClassLoaderForDeserialization(valueType);
return (T) _readValue(copyDeserializationConfig(), jp, _typeFactory.constructType(valueType));
}
ObjectMapper
class有上面的readValue
方法
我的自定义 class 方法(如下)工作正常,没有错误,但我看到 "red Line" 代码行 mapper.readValue(UserJson, in IntelliJ Idea...
private User serializeFromJsonString(String UserJson) throws Exception {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(UserJson, User.class);
}
带照片的示例:
谢谢 Stephan,LazerBass..“(文件 -> 使缓存无效)”似乎不起作用,我昨天在 Whosebug 中发布此 Qn 之前已经尝试过了。
今天没有出现错误。似乎 IDE 忽略了我的依赖项。
我的 Spring-boot 应用程序中硬编码了以下依赖版本。
<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.4</version>
</dependency>
当我将 Maven 项目加载到 IntelliJ Idea 中时,它会要求手动导入依赖项,为此 "ObjectMapper" class,IDE 导入了 1.9.12 版本的jackson-mapper-asl(理论上它必须在我的项目中硬编码我的 1.9.4 版本)。所以我去添加了额外的 1.9.4 jar,这是无关紧要的,但只是想检查一下。
我做了更多的研究并检查了所有版本(link:https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl)中 ObjectMapper class 的 "readValue" 方法,令人惊讶的是这个的所有版本jackson-mapper-asl jar里面有这个方法
缩小范围,问题似乎与 intelliJ Idea 有关,参考:https://intellij-support.jetbrains.com/hc/en-us/community/posts/207108385-IntelliJ-not-able-to-resolve-classes-of-external-Libraries-for-Maven-projects
前言:
API method (
import org.codehaus.jackson.map.ObjectMapper;
)@SuppressWarnings("unchecked") public <T> T readValue(JsonParser jp, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException { // !!! TODO // _setupClassLoaderForDeserialization(valueType); return (T) _readValue(copyDeserializationConfig(), jp, _typeFactory.constructType(valueType)); }
ObjectMapper
class有上面的readValue
方法
我的自定义 class 方法(如下)工作正常,没有错误,但我看到 "red Line" 代码行 mapper.readValue(UserJson, in IntelliJ Idea...
private User serializeFromJsonString(String UserJson) throws Exception {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(UserJson, User.class);
}
带照片的示例:
谢谢 Stephan,LazerBass..“(文件 -> 使缓存无效)”似乎不起作用,我昨天在 Whosebug 中发布此 Qn 之前已经尝试过了。
今天没有出现错误。似乎 IDE 忽略了我的依赖项。
我的 Spring-boot 应用程序中硬编码了以下依赖版本。
<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.4</version>
</dependency>
当我将 Maven 项目加载到 IntelliJ Idea 中时,它会要求手动导入依赖项,为此 "ObjectMapper" class,IDE 导入了 1.9.12 版本的jackson-mapper-asl(理论上它必须在我的项目中硬编码我的 1.9.4 版本)。所以我去添加了额外的 1.9.4 jar,这是无关紧要的,但只是想检查一下。
我做了更多的研究并检查了所有版本(link:https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl)中 ObjectMapper class 的 "readValue" 方法,令人惊讶的是这个的所有版本jackson-mapper-asl jar里面有这个方法
缩小范围,问题似乎与 intelliJ Idea 有关,参考:https://intellij-support.jetbrains.com/hc/en-us/community/posts/207108385-IntelliJ-not-able-to-resolve-classes-of-external-Libraries-for-Maven-projects