小编hon*_*hia的帖子

在 Kotlin 中使用星型投影作为超类型

谁能帮我解释一下这里发生了什么?

private val map1 = mutableMapOf<String, Data<State<*>>>()
private val map2 = mutableMapOf<String, Data<*>>()

init {
    map1.put("1", Data<State<String>>()) //it does not work
    map2.put("2", Data<State<String>>()) //it works
    map2.put("3", Data<State<Int>>()) //it works
}

class Data<T>
class State<T>
Run Code Online (Sandbox Code Playgroud)

我从 Kotlin 文档中读到,如果类型未知,您可以使用星形投影(*),然后再使用任何类型。那么为什么它不适用于第一种情况呢?它说Type Mismatch Error

generics android kotlin

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

包装在任务中时如何使隐式转换工作?

这是我的代码。我无法返回Task<OkObjectResult>。我不想将返回类型转换为更具体的类型,例如Task<OkObjectResult>它会阻止我返回其他类型的结果,例如Task<BadRequestObjectResult>我无法更改方法的签名。这是 MediatR 的IRequestHandler

我该怎么做才能让它发挥作用?

public class Handler : IRequestHandler<Request, ActionResult>
{
    public Task<ActionResult> Handle(Request request, CancellationToken cancellationToken)
    {
        Task.FromResult(new OkObjectResult(new Response { IsHealthy = true }));
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net asynchronous async-await

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

标签 统计

.net ×1

android ×1

asp.net ×1

async-await ×1

asynchronous ×1

c# ×1

generics ×1

kotlin ×1