Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我们没有';我没有访问源类的权限_Java_Jackson - Fatal编程技术网

Java 当我们没有';我没有访问源类的权限

Java 当我们没有';我没有访问源类的权限,java,jackson,Java,Jackson,我只想将对象的部分转换为JSON。我不能直接访问代码(我不能修改它),所以我必须使用mixin(我想) 现在我要做的是: main.java ObjectMapper marshaller = new ObjectMapper(); marshaller.setVisibility( new VisibilityChecker.Std( JsonAutoDetect.Visibility.NONE, JsonAutoDetect.Visibility.N

我只想将对象的部分转换为JSON。我不能直接访问代码(我不能修改它),所以我必须使用mixin(我想)

现在我要做的是:

main.java

ObjectMapper marshaller = new ObjectMapper();

marshaller.setVisibility(
    new VisibilityChecker.Std(
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE
    )
);

marshaller.addMixIn(FirstClass.class, FirstClassMixin.class);
marshaller.addMixIn(SecondClass.class, SecondClassMixin.class);
public interface FirstClassMixin {

    @JsonProperty
    @JsonUnwrapped
    SecondClass getSecondClass();
}
public interface SecondClassMixin {

    @JsonProperty("name")
    String getName();
}
FirstClassMixin.java

ObjectMapper marshaller = new ObjectMapper();

marshaller.setVisibility(
    new VisibilityChecker.Std(
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE
    )
);

marshaller.addMixIn(FirstClass.class, FirstClassMixin.class);
marshaller.addMixIn(SecondClass.class, SecondClassMixin.class);
public interface FirstClassMixin {

    @JsonProperty
    @JsonUnwrapped
    SecondClass getSecondClass();
}
public interface SecondClassMixin {

    @JsonProperty("name")
    String getName();
}
SecondClass.java

ObjectMapper marshaller = new ObjectMapper();

marshaller.setVisibility(
    new VisibilityChecker.Std(
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE,
        JsonAutoDetect.Visibility.NONE
    )
);

marshaller.addMixIn(FirstClass.class, FirstClassMixin.class);
marshaller.addMixIn(SecondClass.class, SecondClassMixin.class);
public interface FirstClassMixin {

    @JsonProperty
    @JsonUnwrapped
    SecondClass getSecondClass();
}
public interface SecondClassMixin {

    @JsonProperty("name")
    String getName();
}
这很好,但是如果我继续添加类,例如
SecondClass
has
ThirdClass
ThirdClass
has
ForthClass
我就必须继续添加文件。对于大型类,这种情况会发生多次,并且无法直接从
FirstClass
访问
ForthClass

有没有办法压缩
FirstClassMixin.java
中的所有内容