gpt4 book ai didi

java - Java 中具有两个泛型的方法

转载 作者:行者123 更新时间:2023-12-01 07:01:57 25 4
gpt4 key购买 nike

我有一个问题,想问你们为什么这段代码不起作用,以及如何在不删除泛型或方法的情况下使其工作。我认为这是因为该方法不能重载,因为 S 和 T 可以是同一类型,这是正确的吗?但我仍然不知道如何让它发挥作用。谢谢!

public class GenericFail<S,T> {
public void doAnything(S sValue){
System.out.println("Doing anything with S");
}

public void doAnything(T sValue){
System.out.println("Doing anything with T");
}
}

最佳答案

泛型类型在编译后被删除。所以这两个 doAnything() 方法具有相同的签名:

doAnything(Object object)

因为 ST 没有显式派生自更具体的类型。

要解决该问题:要么将方法名称更改为具有两个不同的名称,要么使 ST 派生自特定类型,例如:

public class GenericFail<S extends CharSequence, T extends Number> {

关于java - Java 中具有两个泛型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43769270/

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