<dependencies>
<!-- Protocol Buffers -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.18.1</version>
</dependency>
<!-- Kotlin Core -->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.6.0</version>
</dependency>
</dependencies>
groovy
dependencies {
// Protocol Buffers
implementation 'com.google.protobuf:protobuf-java:3.18.1'
// Kotlin Core
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.6.0'
}
protobuf
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
repeated string hobbies = 3;
}
shell
protoc --java_out=./src/main/java ./Person.proto
kotlin
import kotlin.io.ByteStreams
import com.google.protobuf.InvalidProtocolBufferException
fun main() {
val personBuilder = Person.Person.newBuilder()
personBuilder.name = "John"
personBuilder.age = 25
personBuilder.addHobbies("Coding")
personBuilder.addHobbies("Reading")
val person = personBuilder.build()
val personBytes = person.toByteArray()
try {
val deserializedPerson = Person.Person.parseFrom(personBytes)
println("Name: ${deserializedPerson.name}")
println("Age: ${deserializedPerson.age}")
println("Hobbies: ${deserializedPerson.hobbiesList}")
} catch (e: InvalidProtocolBufferException) {
println("Failed to deserialize Person object.")
}
}