小编Cri*_*ano的帖子

使用流从内部对象分组Map属性?

我正在学习Java 8 - Java 11,我得到了一个代码,我正在转换为.我有以下课程:

class Resource {
   List<Capability> capabilities;
}

class Capability {
   String namespace;
   Map<String, Object> attributes;
}
Run Code Online (Sandbox Code Playgroud)

我有一个资源流,我想从两个不同的命名空间("a","b")中提取所有的功能属性到Map<Resource, Map<String, Object>>我确信没有重复键.

我做了很多尝试使用map,flatMap但是有了这些,我无法保留主要资源对象的引用.使用java9的新功能我可以进步,但我坚持下面的代码,我能够返回所有属性,但在一个集合.我还无法通过功能命名空间进行过滤,并将它们放在地图中:

Map<Resource, Set<Object>> result = pResolved.stream()
    .collect(groupingBy(t -> t, flatMapping(
            resource -> resource.getCapabilities(null).stream(),
            flatMapping(
                    cap -> cap.getAttributes().entrySet().stream(),
                    toSet()))));
Run Code Online (Sandbox Code Playgroud)

似乎我走在了正确的道路上.

java collections java-8 java-stream java-11

8
推荐指数
2
解决办法
212
查看次数

如何列出使用 microdnf 作为包管理器的 Linux 发行版中安装的内容?

我正在尝试创建一个基于https://hub.docker.com/r/redhat/ubi9-minimal的映像,该映像以 microdnf 作为其包管理器。

\n

我注意到在上面安装了 python3 后,除了它的直接依赖项之外,还安装了更多的软件包。

\n

我想调查一下,但奇怪的是 microdnf 没有listdfn 或 yum 那样的命令。:)

\n
Usage:\n  microdnf [OPTION\xe2\x80\xa6] COMMAND\n\nCommands:\n  upgrade              Upgrade packages\n  update               Compatibility alias for the "upgrade" command\n  module reset         Reset a module stream\n  distro-sync          Upgrade/downgrade packages to match versions in repositories\n  dsync                Compatibility alias for the "distro-sync" command\n  remove               Remove packages\n  reinstall            Reinstall packages\n  clean                Remove cached data\n  repolist             List repositories\n  module enable        Enable a module stream\n  download             Download packages\n  makecache            Generate the metadata …
Run Code Online (Sandbox Code Playgroud)

redhat-containers

7
推荐指数
1
解决办法
4739
查看次数

有什么方法可以将FileSet指定为命令行参数吗?

我正在创建一个不需要项目运行的Mojo.

我想使用类似的东西org.apache.maven.model.FileSet(提供包含和排除的多个目录),@parameter但我的问题是我需要能够使用命令行设置这些值.

知道怎么做到这一点?

mojo maven

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

如何转义 VSCode launcher.json 命令中作为参数传递的 json 中的逗号?

我想调试一个应用程序,需要传递一个内联 json 作为 arg。我做了以下事情:

    "configurations": [
        {
            "name": "app DEV",
            "program": "lib/main.dart",
            "request": "launch",
            "type": "dart",
            "args": [
                "--dart-define=APP_BACKENDS={[{\"id\":\"default\",\"url\":\"https://localhost\",\"port\": \"8080\"},]}",
            ]
        }
Run Code Online (Sandbox Code Playgroud)

但 APP_BACKENDS const 值在第一个逗号中被删除。锁定它的打印:{[{"id":"default"


只是为了清楚起见。这就是我获取打印值的方式:

static const _APP_BACKENDS =
      String.fromEnvironment('APP_BACKENDS', defaultValue: '{}');
Run Code Online (Sandbox Code Playgroud)

visual-studio-code flutter vscode-debugger

4
推荐指数
1
解决办法
1657
查看次数

如何组合来自 Collectors.groupingBy 的结果

我正在玩 Java 反射并学习更多关于 Stream.collect 的信息。

我有一个注释 MyTag,它有两个属性(idtypeenum[Normal|Failure])。此外,我有一个带有 MyTag 的带注释的方法列表,我能够使用 Collectors.groupingBy 通过 MyTag 注释的 id 属性对这些方法进行分组:

List<Method> ml = getMethodsAnnotatedWith(anClass.getClass(),
                                           MyTag.class);
Map<String, List<Method>> map = ml.stream().collect(groupingBy(m -> {
      var ann = m.getDeclaredAnnotation(MyTag.class);
      return ann.anId();
    }, TreeMap::new, toList()));

Run Code Online (Sandbox Code Playgroud)

现在我需要将结果列表减少到一个对象,它只由两个相同 MyTag.id 的项目组成,一个带有 MyTag.type=Normal,另一个带有 MyTag.type=Failure。所以它会产生类似于 Map<String, Pair<Method, Method>> 的结果。如果出现两次以上,我必须只选择第一个,记录并忽略其余的。

我怎么能做到这一点?

java java-stream

4
推荐指数
1
解决办法
116
查看次数

使用地图中的值过滤pojos流

我有这个pojo(这是一个例子,而不是真实的例子):

Book {
  String name;
  Map<String, String> properties;
}
Run Code Online (Sandbox Code Playgroud)

以及它们的清单:

List<Book> library;

TheBook1, {["lang", "pt-br"],["type","romance"],["author","John"]}
TheBook2, {["lang", "en-US"],["type","fiction"],["author","Brian"],["translation","pt-br,es"}
Run Code Online (Sandbox Code Playgroud)

假设我有一个Library集合,并且我有一个包含搜索条件的地图,例如:

Map<String, String> criteria = new HashMap<>();
criteria.put(BOOK_TYPE, "romance");
criteria.put(BOOK_LANG, "pt-br");
Run Code Online (Sandbox Code Playgroud)

我如何为库流编写过滤谓词,以便搜索符合所提供标准的所有书籍?匹配必须是现在的键和值的精确字符串匹配.

像这样的东西:

Set<Book> result = library.stream()
.filter(b-> b.getProperties() **????**)
.collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

3
推荐指数
1
解决办法
869
查看次数

无论如何使用 KVM 设置/修复 Minikube 集群的 IP 地址

我希望在每次启动和停止时,我的 ubuntu 主机(带有 KVM2)上的 minikube 集群有一个固定的 IP 地址(输入 minikube ip 时获得的地址)。

我想将一个 DNS 子域指向它,以便测试一些基于子域证书的安全内容。

有什么办法可以做到吗?

kvm minikube

3
推荐指数
1
解决办法
4743
查看次数

如何将forRoot()模块的方法的参数传递给提供者?

我找到了一些模块的forRoot()方法的例子,如下所示:

export class CoreModule {
constructor(
@Optional()
@SkipSelf()
parentModule: CoreModule
) {
if (parentModule) {
  throw new Error(
    'CoreModule is already loaded. Import it in the AppModule only'
  );
 }
}
static forRoot(someParameters?:string[]): ModuleWithProviders {
  return {
  ngModule: CoreModule,
  providers: [AnProvider1, AnProvider2]
 };
}
Run Code Online (Sandbox Code Playgroud)

但是,如何将参数值传递给模块的任何声明的提供者?

angular-cli angular

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

为什么带级联的 dart 方法链不能与 setter 方法一起使用?

我有一些像这样的模型类:

class Environment {
  String _oidClientId;
  String _oidIssuerUrl;
  get issuerUrl => _oidIssuerUrl;
  set issuerUrl(String pIssuerUrl) => this._oidIssuerUrl = pIssuerUrl;
  get clientId => _oidClientId;
  set clientId(String pClientID) => this._oidClientId = pClientID;

}
Run Code Online (Sandbox Code Playgroud)

我尝试创建一个实例并使用级联在其上设置值:

var env = Environment.dev()
  ..clientId("my.id.public")
  ..issuerUrl("https://demo.myserver.com")

Run Code Online (Sandbox Code Playgroud)

但编译器给了我这个错误:

Undefined name 'clientId'.
Try correcting the name to one that is defined, or defining the name.dart(undefined_identifier)
Run Code Online (Sandbox Code Playgroud)

如果我更改代码,重命名 getter(由于名称重复)并将 setter 变成 avoid clientId(String pClientID)那么编译器不会抱怨。但我宁愿不这样做。我错过了什么吗?

dart

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