gpt4 book ai didi

java - 如何根据不同对象的返回结果创建对象的强制类型转换

转载 作者:行者123 更新时间:2023-12-02 10:26:43 25 4
gpt4 key购买 nike

我希望能够转换 CompletableFuture<?>说一个CompletableFuture<String[]>如果某个方法返回 String[]

所以我有一个 CompletableFuture<?>来自队列,我想知道如何正确地转换它,而不必总是检查我的具体情况

这就是我目前所拥有的...

    CompletableFuture<?> cb = cbQueue.poll();

switch(subChannel) {
case "GetServers":
((CompletableFuture<String[]>) cb).complete(in.readUTF().split(", "));
break;
}

但是我希望能够只写...

    CompletableFuture<?> cb = cbQueue.poll();

switch(subChannel) {
case "GetServers":
complete(cb, in.readUTF().split(", "));
break;
}

它会根据传递的类型进行适当的转换(在本例中为 String[])这是因为我有很多检查案例,并且只是好奇,这样我就不必进行不必要的转换

最佳答案

此类问题的解决方案通常是一个间接层。应该在 QueueCompletableFuture 之间或 CompletableFutureString[] 之间引入另一个对象。

Queue<Sometype> -> Sometype -> CompletableFuture<String[]> -> String[]

其中有不同 CompletableFuture 类型的 Sometype 实现

Queue<CompletableFuture<Sometype>> -> CompletableFuture<Sometype> -> Sometype -> String[]

其中有不同类型的Sometype实现,例如String[]

关于java - 如何根据不同对象的返回结果创建对象的强制类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53895215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com