简体   繁体   English

有依赖项时Javac找不到符号错误

[英]Javac cannot find symbol error when there is a dependency

I am getting the following error - sorry if this is fairly basic, I'm not super experienced with Java. 我收到以下错误-很抱歉,如果这是很基本的话,那么我对Java的经验还不是很丰富。

javac -cp "/Users/myname/Desktop/Projects/Project/build_dir/jarname.jar" filename.java

filename.java:24: error: cannot find symbol
@JsonDeserialize(builder = Builder.class)
                           ^
  symbol: class Builder

Ok, so far so good. 好的,到目前为止很好。

So I look into the code of filename.java, and see this on line 24: 因此,我研究了filename.java的代码,并在第24行看到了这一点:

@JsonDeserialize(builder = Builder.class)

So I've got a deserialize annotation, for the builder class (I think). 因此,对于构建器类,我有一个反序列化注释(我认为)。

However, in the same file, filename.java, there IS a builder class: 但是,在同一文件filename.java中,有一个构建器类:

   @JsonPOJOBuilder
    public static class Builder {

So what's going on here? 那么这是怎么回事? Is it just that it's trying to compile and doesn't know to look for the Builder class too? 仅仅是它在尝试编译并且也不知道是否也在寻找Builder类吗? How do I let Javac "know" that there is also a builder class? 如何让Javac“知道”还有一个构建器类?

Again, sorry if this is a basic question, but I'm not finding much information on the internet about it. 同样,如果这是一个基本问题,对不起,但是我在互联网上找不到太多有关此问题的信息。

EDIT: As there's some question on how the application works, I'm including more code below: 编辑:由于存在有关应用程序如何工作的一些问题,我在下面包括了更多代码:

@JsonInclude(value = JsonInclude.Include.NON_NULL)
@JsonDeserialize(builder = Builder.class)
public class DetailClass {
private DetailClass(Builder builder) {
...
}
...
@JsonPOJOBuilder
    public static class Builder {
...
}
}

So the Builder class is a method of the DetailClass as far as I can tell. 据我所知,Builder类是DetailClass的方法。

Looks like Builder is an inner class. 看起来Builder是一个内部类。 To point to the inner class you should add parent class name before: 要指向内部类,您应该在前面添加父类名称:

@JsonDeserialize(builder = Builder.class) -> @JsonDeserialize(builder = DetailClass.Builder.class) @JsonDeserialize(builder = Builder.class)-> @JsonDeserialize(builder = DetailClass.Builder.class)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM