java8写一段通过读配置文件中的条件,skip数据的共通代码
时间: 2024-05-01 20:17:16 浏览: 92
假设配置文件的格式如下:
```
skip=condition1,condition2,condition3
```
则可以使用以下代码实现:
```java
// 读取配置文件
Properties prop = new Properties();
try (InputStream input = new FileInputStream("config.properties")) {
prop.load(input);
} catch (IOException e) {
e.printStackTrace();
}
// 获取skip条件
String skipStr = prop.getProperty("skip");
Set<String> skipConditions = new HashSet<>();
if (skipStr != null && !skipStr.isEmpty()) {
String[] conditions = skipStr.split(",");
skipConditions.addAll(Arrays.asList(conditions));
}
// 遍历数据,根据skip条件进行过滤
List<Data> dataList = getDataList();
List<Data> filteredDataList = dataList.stream()
.filter(data -> {
for (String condition : skipConditions) {
if (data.matchesCondition(condition)) {
return false;
}
}
return true;
})
.collect(Collectors.toList());
```
其中,`Data` 类为具体的数据类,`matchesCondition` 方法用于判断该数据是否符合指定的条件。如果符合条件,则返回 `true`,否则返回 `false`。
以上代码中,首先从配置文件中读取 `skip` 属性,并将其按照逗号分隔后存入 `skipConditions` 集合中。然后遍历数据列表,对于每个数据,都遍历 `skipConditions` 集合中的条件,如果该数据符合任意一个条件,则跳过该数据。最后将过滤后的数据列表存入 `filteredDataList` 中。
阅读全文