我的 Angular 应用程序有几个环境文件:
我想使用所有环境共享的默认变量,而不在每个文件中复制它们。如果我仅在environment.ts 中添加变量“homeUrl” ,例如:
export const environment = {
production: false,
apiUrl: 'http://some-backend-url/',
homeUrl: '/illustrator/directory'
};
Run Code Online (Sandbox Code Playgroud)
当我使用 dev 配置运行应用程序时,environment.dev.ts中的变量已正确加载,但 homeUrl 未定义,因为它仅在environment.ts文件中声明。
有没有办法使用环境之间共享的默认变量而不复制它们?
我有一个包含Map的对象列表.该对象如下所示:
public class SwiftObject {
private Map<String, String> metadata;
...
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试根据存储在Map中的键和值来过滤我的对象.
我的过滤条件包含在另一个地图中.
我想过滤并保留Map包含过滤器Map中所有键/值的所有对象.
这是我写的代码:
List<? extends SwiftObject> swiftObjects = documentStore.listAllObjects(container);
Map<String, String> searchMetadata = gssDocument.getMetadataMap();
List<SwiftObject> filteredSwiftObjects = swiftObjects.stream()
.filter(swiftObject ->
searchMetadata.entrySet().stream()
.allMatch(entry -> entry.getValue().equals(swiftObject.getMetadata().get(entry.getKey())))
)
.collect(Collectors.ToList());
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?还是可以重构/优化?
searchMetadata映射不包含空值
我在Java 8 map操作中传递了一个Function,Intellij告诉我可以将其替换为lambda表达式。但是我不知道如何在不创建中间对象结构的情况下做到这一点。
这是我的工作:
List<DocumentResult> documentResults = objects.getObject().stream()
.map(new Function<ObjectType, DocumentResult>() {
@Override
public DocumentResult apply(ObjectType objectType) {
String[] keys = objectType.getStorageKey().getObjectName().split("/");
DocumentResult result = new DocumentResult(DocCategories.valueByLabel(keys[1]), DocCategoryGroups.valueByLabel(keys[2]), DocSubCategories.valueByLabel(keys[3]), keys[4], keys[5]);
result.setLink(objectType.getTempUrl().getFullUrl());
return result;
}
})
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我认为Intellij建议我这样做:
List<DocumentResult> documentResults = objects.getObject().stream()
.map(object -> object.getStorageKey().getObjectName().split("/"))
.map(tab -> new DocumentResult(DocCategories.valueByLabel(tab[1]), DocCategoryGroups.valueByLabel(tab[2]), DocSubCategories.valueByLabel(tab[3]), tab[4], tab[5]))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我不知道一种干净的方法来获取在匿名函数中检索到的objectType.getTempUrl()。getFullUrl()部分,有什么建议吗?