小编Kes*_*esh的帖子

Avro字段默认值

我遇到了一些设置Avro字段默认值的问题.我有一个简单的架构,如下所示:

data.avsc:

{
 "namespace":"test",
 "type":"record",
 "name":"Data",
 "fields":[
    { "name": "id", "type": [ "long", "null" ] },
    { "name": "value", "type": [ "string", "null" ] },
    { "name": "raw", "type": [ "bytes", "null" ] }
 ]
}
Run Code Online (Sandbox Code Playgroud)

我使用avro-maven-plugin v1.7.6生成Java模型.

当我使用:创建模型的实例时 Data data = Data.newBuilder().build();,它失败并出现异常:

org.apache.avro.AvroRuntimeException:org.apache.avro.AvroRuntimeException:字段ID类型:UNION pos:0未设置且没有默认值.

但是如果我指定"默认"属性,

{ "name": "id", "type": [ "long", "null" ], "default": "null" },
Run Code Online (Sandbox Code Playgroud)

我没有得到这个错误.我在文档中读到联合中的第一个模式成为默认模式.所以我的问题是,为什么我仍然需要指定"默认"属性?我怎么做一个字段可选?

如果我确实需要指定默认值,那么它对联合的作用如何; 我是否需要为联合中的每个模式指定默认值,以及它在顺序/语法方面如何工作?

谢谢.

java maven avro

34
推荐指数
3
解决办法
5万
查看次数

Github README渲染Gliffy图

有没有办法在github repo的README中添加一个gliffy图?我知道如何添加图像,我已经用gliffy图尝试了这种方法,但它不起作用; gliffy没有渲染.也许正确的问题是,github READMEs是否有一个闪亮的渲染器?

编辑:

我真正想要的是将gliffy xml存储在repo中,它会在引用时自动在README中呈现,而不是将xml 预渲染图像存储在repo中.

github gliffy readme

6
推荐指数
1
解决办法
550
查看次数

基于另一组的Java 8过滤器集

使用Java 8新结构(例如流),有没有办法Set根据另一个集合中的顺序过滤?

Set<Person> persons = new HashSet<>();

persons.add(new Person("A", 23));
persons.add(new Person("B", 27));
persons.add(new Person("C", 20));

List<String> names = new ArrayList<>();
names.add("B");
names.add("A");
Run Code Online (Sandbox Code Playgroud)

我希望根据集合过滤来自集合persons的项目names,这样只有那些指定了其名称的人才names会被保留,但是按照它们出现的顺序names.

所以,我想要

Set<Person> filteredPersons = ...;
Run Code Online (Sandbox Code Playgroud)

第一个元素是Person("B", 27)第二个元素Person("A", 23).

如果我这样做,

Set<Person> filteredPersons = new HashSet<>(persons);
filteredPersons = filteredPersons.stream().filter(p -> names.contains(p.getName())).collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)

names如果我没有记错的话,订单不能保证与in相同.

我知道如何使用简单的for循环来实现这一点; 我只是在寻找一种java 8方式.

谢谢你的期待!

编辑:

用于循环,达到相同的结果:

Set<Person> filteredPersons = new LinkedHashSet<>();
for (String name : names) …
Run Code Online (Sandbox Code Playgroud)

java java-8

5
推荐指数
1
解决办法
6584
查看次数

标签 统计

java ×2

avro ×1

github ×1

gliffy ×1

java-8 ×1

maven ×1

readme ×1