2


我使用 lombok/auto-value 和构建器模式创建了一个 POJO。我需要将对象转换为由 protobuf 生成的 java 模型。

public class Test {
    public static void main(String args[]) {
        User user = User.builder()
                .userName("username")
                .userId(1)
                .build();

//      Protouser.ProtoUser protoUser = Protouser.ProtoUser
//              .newBuilder()
//              .setUserName("usernmae")
//              .setUserId(1)
//              .build();
    }
}

@Getter
@ToString
@Builder(toBuilder = true)
class User {
    @NonNull
    private String userName;

    private int userId;
}

Protobuf 文件

syntax = "proto3";
message ProtoUser {
    string userName = 1;
    int32 userId = 2;
}

我正在尝试使用以下库来实现这一点,但失败了。

谁能帮我解决这个问题,或者是否有任何其他库可以进行这种转换或以更好的方式处理它?

4

1 回答 1

-1

您可以使用翻译器来执行此操作:

public User translate(native) {
        return User.builder()
        .userName(native.getUserName())
        .userID(native.getUserID())
        .build();
 }

native是用户消息的构建器,或者您可以是存根。

于 2021-07-29T11:18:54.603 回答