当前位置: 首页 > 知识库问答 >
问题:

如何将返回列表的方法转换为反应流smallrye mutiny?

张鹏鹍
2023-03-14

我对反应式编程非常陌生,希望转换一个返回<代码>列表的方法

我尝试创建Publisher等,但找不到合适的示例来进一步进行。有人能提供一些指导或建议吗?

正如下面的代码所提供的,我有一个方法可以提供随机字符串列表。在这里,我需要等到所有元素都被添加到List后才能返回。我想实现反应式流方法,而不是等待所有元素被添加到列表中,我希望在生成后立即返回它。

我相信使用SmallRye Mutiny可以实现这一点,您能让我知道如何实现吗?

import org.apache.commons.lang.RandomStringUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        System.out.println(addElements(5));
    }

    private static List<String> addElements(final int elementsCount) {
        final List<String> returnList = new ArrayList<>();
        IntStream.range(0, elementsCount).forEach(count -> {
            returnList.add(RandomStringUtils.randomAlphanumeric(17).toUpperCase());
        });
        return returnList;
    }
}

共有1个答案

吉毅
2023-03-14

有一种方法:

public class Main {
    public static void main(String[] args) {
        System.out.println(addElements(5).await().indefinetely());
    }

    private static Uni<List<String>> addElements(final int elementsCount) {
        return Multi.createFrom()
                .range( 0, elementCount )
                .map( integer -> RandomStringUtils.randomAlphanumeric( 17 ).toUpperCase() )
                .collect()
                .asList();
    }
}

作为参考,在官方网站上有一个有用的入门指南

 类似资料:
  • 我有一个lambda表达式,我想在其中创建一个对象列表,但我得到了错误 错误 我希望作为lambda表达式的返回类型。我怎样才能做到呢?

  • 我目前正在使用平铺地图为pyplay中的一个游戏开发地图编辑器。关卡由以下结构中的块构建而成(尽管要大得多): 其中“1”是一块墙,“0”是一块空空气。 以下代码基本上是处理块类型更改的代码:

  • 我想用Java8Stream API将一个Java POJO列表转换为一个非静态方法中的映射。 我的折线图需要x轴的日期字符串值列表和Y轴的数值列表。这是一种典型的地图格式。但我的数据库为我返回了一个POJO列表。我不喜欢在没有Java8流API的帮助下进行循环。我尝试了这个[ask}(Java 8 List of Objects to map of values)中的方法。但是,我面临两个问题。

  • 方法(下面)是一个类型,我用作参数的类是一个。我想知道我选角的方式是否管用: 这就是方法: 此URL指向类: 我把它放进了粘贴箱,因为课程太长了。

  • 问题内容: 我是Python的新手,需要将列表转换为字典。我知道我们可以将元组列表转换为字典。 这是输入列表: 并且我想将此列表转换为元组列表(或直接转换为字典),如下所示: 我们如何在Python中轻松做到这一点? 问题答案: 您想一次将三个项目分组吗? 您想一次分组N个项目吗?

  • 问题内容: 我有一个函数,其输入参数可以是一个元素或元素列表。如果此参数是单个元素,则将其放在列表中,以便可以以一致的方式遍历输入。 目前我有这个: 我正在使用现有的API,因此无法更改输入参数。使用isinstance()感觉很麻烦,所以有 适当的 方法吗? 问题答案: 我喜欢Andrei Vajna的建议。请注意以下一些典型的Python类型的结果: 这具有将字符串视为不可重复的额外优势-字符