我有一个包含属性的对象,该属性是包含两个字符串属性的对象列表。我的目标是将此映射的键与另一个包含字符串属性的对象进行比较。
为了更清楚我的请求包含地图:
"documentType": "Document"
"fields": [
{
"name": "something",
"value": "123456789"
},
{
"name": "somethingElse",
"value": "Someone"
},
{
"name": "notADocumentColumn",
"value": "shouldThrowException"
},
{
"name": "notexistingcolumn",
"value": "not a column"
}
]
我的sharePointDriveResponse包含以下列:
"columns": [
{
"columnGroup": "Document",
"description": "",
"displayName": "something",
"enforceUniqueValues": false,
"hidden": false,
"id": "8553196d-ec8d-4564-9861-xxxxxxxxxxxx",
"indexed": false,
"name": "FileLeafRef",
"readOnly": false,
"required": true
},
{
"columnGroup": "Billing or Whatever",
"description": "",
"displayName": "notADocumentColumn",
"enforceUniqueValues": false,
"hidden": false,
"id": "3a6b296c-3f50-445c-a13f-xxxxxxxxxxxx",
"indexed": false,
"name": "ComplianceAssetId",
"readOnly": true,
"required": false,
"text": {
"allowMultipleLines": false,
"appendChangesToExistingText": false,
"linesForEditing": 0,
"maxLength": 255
}
},
在这个阶段,我实现了一些工作正常的东西:
List<String> check = sharePointDriveResponse.getColumns()
.stream()
.map(SharePointColumnsResponse::getDisplayName)
.collect(Collectors.toList())
.stream()
.filter(request.getFields()::containsKey)
.collect(Collectors.toList());
if(check.size() == request.getFields().size()) {
System.out.println("It's OK !");
} else {
throw new RequestException("One column provided doesn't exist");
}
我的问题如下:
sharePointDriveResponse.getColumns()
.stream()
.map(SharePointColumnsResponse::getDisplayName)
.collect(Collectors.toList())
.stream()
.filter(request.getFields()::containsKey)
.collect(Collectors.toList());
// some operator here to throw exception
在示例中:我发送一个创建文档的请求,并传递一个不允许文档使用但允许其他内容类型使用的字段。
"columnGroup": "Billing or Whatever",
"description": "",
"displayName": "notADocumentColumn",
我也想为这个案子破例。我也可以像以前那样重建一个类似的东西,但是我会因为这个简单的任务而失去效率。
List<String> checkColumnsContentType = sharePointDriveResponse.getColumns()
.stream()
.map(SharePointColumnsResponse::getColumnGroup)
.collect(Collectors.toList())
.stream()
.filter(request.getFields()::containsKey)
.collect(Collectors.toList());
我找到了问题第一点的答案。因为写这个问题花了一些时间,所以即使解决了这个问题,我还是让它继续。这是我的实现。
sharePointDriveResponse.getColumns()
.stream()
.map(SharePointColumnsResponse::getDisplayName)
.collect(toList())
.stream()
.filter(request.getFields()::containsKey)
.collect(collectingAndThen(toList(), l -> {
if (l.size() != request.getFields().size())
throw new RuntimeException("One column provided doesn't exist");
return l;
}));
你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 如何引发异常 例13.2 如何引发异常 #!/usr/bin/python # Filename: raising.py classShortInputException(Exception): '''A u
我正在使用Spring In Action 3 Action学习Spring MVC,我已经实现了显示用户注册表的基本程序,一旦我们提交表单,它将使用进行验证。 这是我的Spring控制器: 这是我的Spitter类文件: 这是我的编辑。显示给用户注册的jsp文件: 要加载表单,我将访问URL为:,一旦表单被加载,我只需提交表单而无需输入任何详细信息,以便我可以检查我的表单是否得到验证。但是我得到
问题内容: 如何从Java 8流/ lambda中抛出CHECKED异常? 换句话说,我想使代码像这样编译: 由于上面的方法,因此该代码无法编译。 请注意,我不想将已检查的异常包装在运行时异常中,而是将已包装的未检查的异常抛出。我想抛出被检查的异常本身,而又不添加丑陋的流。 问题答案: 该帮助程序类使你可以在Java流中使用任何已检查的异常,如下所示: 注意抛出异常,已被选中。流本身也会抛出,而不
测试检查的代码中抛出的两个异常示例: 使用上述代码,当运行测试时,任何都会通过,但任何需要类提供响应的测试都会产生以下错误: EntityNotFoundException-失败 测试:
如果S是T的一个子类型,那么T类型的对象可以被S类型的对象替换。 子类有两种不同的行为(选中与未选中),在某些情况下,除非更改当前代码,否则无法用子类对象有效地替换基类用法,例如,如果编写如下代码: 这是违反吗?,为什么/为什么不?。 资料来源:http://www.oracle.com/technetwork/articles/entarch/effective-exceptions-09234