看看这些文件,我好像可以用 ListState
或者 ValueState<List<String>>
存储状态。例如下面的代码:
// Use ListState
ListStateDescriptor<String> lDescriptor = new ListStateDescriptor<String>
("testListState", TypeInformation.of(new TypeHint<String>() {}));
ListState<String> testListState = getRuntimeContext().getListState(lDescriptor);
// Use ValueState
ValueStateDescriptor<List<String>> testDescriptor =
new ValueStateDescriptor<List<String>>("testList",
TypeInformation.of(new TypeHint<List<String>>() {}));
ValueState<List<String>> testState = getRuntimeContext().getState(testDescriptor);
如果我需要存储一个与每个键相关的元素的唯一列表,那么使用其中一个键会有好处吗?使用liststate的缺点是,如果我需要在保存列表之前修改它,那么首先将iterable转换为一个列表,而如果我使用valuestate,则可以直接检索列表。
1条答案
按热度按时间hgqdbh6s1#
如果我只想为每个键存储一个值,我只使用valuestate。您可以使用它来存储列表,但代码将更加冗长。如果使用valuestate,则必须获取值、更新列表和更新值,但如果使用liststate,则可以直接管理它