项目中已经使用了一些案例类。这些类也用于光滑映射。这些类扩展了一些额外的特征。
我不想从*.proto
描述中生成所有这些类。
有没有机会将它们扩展protobuf
?或者我应该为它们使用包装器。这些包装器将在其中描述*.proto
并从中生成。
项目中已经使用了一些案例类。这些类也用于光滑映射。这些类扩展了一些额外的特征。
我不想从*.proto
描述中生成所有这些类。
有没有机会将它们扩展protobuf
?或者我应该为它们使用包装器。这些包装器将在其中描述*.proto
并从中生成。
对于原型定义
message PBPerson {
int64 id = 1;
string name = 2;
google.protobuf.StringValue phone = 3;
repeated string hobbies = 4;
}
和scala案例类定义
case class Person(
id: Long,
name: String,
phone: Option[String],
hobbies: Seq[String])
你可以使用https://github.com/changvvb/scala-protobuf-java
import pbconverts.{ Protoable, Scalable }
val convertedPBPerson:PBPerson = Protoable[Person,PBPerson].toProto(person)
val convertedPerson:Person = Scalable[Person,PBPerson].toScala(pbPerson)
此外,这个库使用 scala 宏来确保它是类型安全的转换。