gpt4 book ai didi

java - 如何将泛型对象作为泛型参数传递给 java 中的其他方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:48:09 25 4
gpt4 key购买 nike

我在使用泛型方法时遇到了麻烦

编译类:

public class Something<T> {
public static Something newInstance(Class<T> type){};
public <T> void doSomething(T input){};
}

我的方法是:

public <S> void doOtherThing(S input){
Something smt = Something.newInstance(input.getClass());
smt.doSomething(input); // Error here
}

编译时出错:

no suitable method found for doSomething(T) T cannot be converted to capture#1 of ? extends java.lang.Object ...

我认为可能有避免这种情况的技巧,请帮忙

最佳答案

将 S 类作为参数传递。

public class Something<T>
{
public static <T> Something<T> newInstance(Class<T> type)
{
return new Something<T>();
}

public void doSomething(T input){;}

public <S> void doOtherThing(Class<S> clazz, S input)
{
Something<S> smt = Something.newInstance(clazz);
smt.doSomething(input);
}
}

关于java - 如何将泛型对象作为泛型参数传递给 java 中的其他方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39657627/

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