带有数字的 Protobuf 字段名称以意想不到的方式大写
Protobuf field names with numbers are capitalized in a unexpected way
我有一个消息:
message Image {
string link_40dp = 1;
}
编译后,在Java中,字段名称为link40Dp
(数字后首字母大写)。但是,我希望字段名称是 link40dp
(d
小写)。
这是预期的行为还是错误?还有其他类似的极端情况吗?
我正在使用 Protobuf Gradle Plugin v0.8.5
和 Protoc v3.6.1
在 Java 中生成消息。
字段名称由 snake case (with underscores) to camel case(音节大写)转换而来。
因此,对于 link_40dp
驼峰式案例,将交付 "link" + capitalize("40dp")
。
其中 capitalize(string) 会将第一个字母变成大写。
我认为 Apache 公共库会将“40dp”大写为“40dp”(没有变化),但显然这里 "smarter" 大写会跳过数字。
这至少表示原始字符串包含下划线:link_40dp
、link4_0dp
或 link40_dp
.
所以这是意料之中的行为,虽然有点出乎意料。
我查阅了资料,发现这是预期的行为。
查看大写的code。所有大小写规则都可以在代码段中找到。
我有一个消息:
message Image {
string link_40dp = 1;
}
编译后,在Java中,字段名称为link40Dp
(数字后首字母大写)。但是,我希望字段名称是 link40dp
(d
小写)。
这是预期的行为还是错误?还有其他类似的极端情况吗?
我正在使用 Protobuf Gradle Plugin v0.8.5
和 Protoc v3.6.1
在 Java 中生成消息。
字段名称由 snake case (with underscores) to camel case(音节大写)转换而来。
因此,对于 link_40dp
驼峰式案例,将交付 "link" + capitalize("40dp")
。
其中 capitalize(string) 会将第一个字母变成大写。
我认为 Apache 公共库会将“40dp”大写为“40dp”(没有变化),但显然这里 "smarter" 大写会跳过数字。
这至少表示原始字符串包含下划线:link_40dp
、link4_0dp
或 link40_dp
.
所以这是意料之中的行为,虽然有点出乎意料。
我查阅了资料,发现这是预期的行为。
查看大写的code。所有大小写规则都可以在代码段中找到。