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

兵变单位转换为原始类型

尹赞
2023-03-14

到目前为止,我在夸克斯的斯莫尔黑伊叛变中做了非常基本的事情。基本上,我有一两个非常小的web服务,它们只与web应用程序交互。这些服务返回一个Uni

现在,我正在编写一个日志服务,希望其他人将信息传递给我。在这个日志服务中,我需要向调用服务返回一个值。日志服务将以Uni的形式返回该值

这里是日志服务中的函数

    @GET
    @Path("/requestid")
    @Produces(MediaType.TEXT_PLAIN)
    public Uni<Integer> getMaxRequestId(){
        return service.getMaxRequestId();
    }

    public Uni<Integer> getMaxRequestId() {
        Integer result = Integer.valueOf(em.createQuery("select MAX(request_id) from service_requests").getFirstResult());
        
        if(result == null) {
            result = 0;
        }
        return Uni.createFrom().item(result += 1);
    }

这是呼叫服务中的客户端代码

@Path("/requests")
public class RequestIdResource {
    
    @RestClient
    RequestIdServices service;
    
    @GET
    @Path("/requestid")
    @Produces(MediaType.TEXT_PLAIN)
    public Uni<Integer> getMaxRequestId(){
        return service.getMaxRequestId();
    }
}

    public void filter(ContainerRequestContext requestContext) throws IOException {

        int requestid = client.getMaxRequestId();

        rm.name = ConfigProvider.getConfig().getValue("quarkus.application.name", String.class);
        rm.server = requestContext.getUriInfo().getBaseUri().getHost();
        rm.text = requestContext.getUriInfo().getPath(true);
        rm.requestid = requestid;
        
    }

基本上,我所尝试的一切都会创建另一个Uni。也许我只是简单地使用了错误的概念。但是我如何从Uni中获取intValue,以便获取intValue


共有1个答案

司马耘豪
2023-03-14

您需要调用一个终端操作,或者使用该值并继续该链。

如果要调用终端操作符,可以调用wait操作,使代码阻塞并等待响应。

如果您想将此反应调用与客户端代码中的另一个调用合并,可以使用combine方法将实际的兵变流与来自响应的on合并或合并。

如果你只是想使用该值而不检索它,你可以怀疑并得到结果。

如果你有一个多,你可以直接调用方法toList

假设您希望包含一些超时,并且希望获得实际的整数,您可以使用wait方法和超时。

 类似资料:
  • 问题内容: 我将类的实例存储在中。 如何将Object 转换回类以访问class方法? 问题答案: 打字: 另外,如果是 class方法 ,则不需要 实例 来访问它,则可以直接调用它:

  • 在下面来自的语法中,泛型类型参数在实例化原始类型数组后用于类型转换,

  • 问题内容: 我目前正在尝试从书中学习如何使用泛型。在本章中,它说取一条数据T并将其转换为整数。我正在Eclipse中尝试不同的方法,但是似乎都不允许这样做。您如何执行以下任务: 然后在另一个类中: 我已经尝试使用和其他一些东西,但似乎没有什么能使Java满意。本书坚持要保持方法的通用性,以防使用浮点数或双精度数代替字符串或整数。 编辑:对于其他人可能有类似的问题。从对这个问题的所有评论和被接受的答

  • 我正在使用ADB拍摄android设备的屏幕截图,并将屏幕截图作为原始字节数据接收。 我知道通过的原始字节数据是rgba格式的 红色偏移量为0,绿色偏移量为8,蓝色偏移量为16,Alpha偏移量为24,每个值为1字节。这构成了整个字节数组。 我正在尝试将这个字节数组转换为C#中的位图,它在大多数情况下都工作正常,图像在各个方面看起来都是正确的,除了它带有一个“蓝色色调”——颜色是关闭的。 以下是我

  • 我有一个文件包。crd。伊滕是这样的 我需要将其导入到以下格式的excel文件中。 我试过这个代码,但不起作用 请帮忙

  • 问题内容: 是否有LLDB命令可以将原始地址转换为可用的Swift类? 例如: 我知道此地址指向MKPinAnnotationView,但它不在我可以选择的框架中。但是,我想将原始地址转换为MKPinAnnotationView,以便可以检查其属性。这可能吗? 问题答案: 在Xcode 8.2.1和Swift 3下,lldb命令 po 或 p 不适用于类型变量。您将需要使用swift命令 prin