小编bob*_*uns的帖子

如何为 Angular 环境使用默认值

我的 Angular 应用程序有几个环境文件:

  • 环境.ts
  • 环境.dev.ts
  • 环境.prod.ts

我想使用所有环境共享的默认变量,而不在每个文件中复制它们。如果我仅在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文件中声明。

有没有办法使用环境之间共享的默认变量而不复制它们?

typescript angular

10
推荐指数
1
解决办法
1492
查看次数

验证Map中的所有键/值对是否存在于另一个Map中

我有一个包含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 lambda java-8

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

用lambda表达式替换匿名函数

我在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()部分,有什么建议吗?

java lambda intellij-idea java-8

0
推荐指数
1
解决办法
3053
查看次数

标签 统计

java ×2

java-8 ×2

lambda ×2

angular ×1

intellij-idea ×1

typescript ×1