Как установить поле google.protobuf.ValueJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как установить поле google.protobuf.Value

Сообщение Anonymous »


Я не слишком хорошо знаком с Java, однако мне удалось продвинуться вперед в настройке среды разработки с помощью Gradle для сборки моего проекта и компиляции файлов .proto в заказать для моего проекта анализ и изменение некоторых данных. Меня беспокоит изменение данных.

Итак, поскольку x является двоичным объектом, содержащим сообщение protobuf, я могу сделать следующее:

var myMessage = FooMessage.parseFrom(x.getBytes()); вар myString = myMessage.getBar().toString(); В файле Foo.proto Bar определен как google.protobuf.Value.

Пока все хорошо, myString содержит строковое представление поля из сообщения protobuf.

Теперь я хочу это изменить. Скажем, например, я делаю сакэ

myString = "|" + myString + "|";

Я считаю, что могу получить изменяемую версию myMessage с помощью следующего кода:

var myBuilder = myMessage.toBuilder(); и есть метод setBar:

myBuilder.setBar(myString); Однако код дает

не найден подходящий метод для setPayload(string)

Думаю, потому что мне нужно передать ему google.protobuf.Value. Итак, мой вопрос: как мне преобразовать String в google.protobuf.Value?

Тогда я смогу использовать build() и преобразовать все сообщение в поток, а затем преобразовать toByteArray(), тогда все должно быть хорошо, я просто застрял в части Значение. Должно быть, я где-то что-то пропустил. Я читал, что могу сделать Value value = Value.newBuilder().setValue(myString).build(), но компилятор сказал, что не может найти символ .setValue.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»