gpt4 book ai didi

java - 将 T 作为参数传递给以在 Java 中有条件地创建泛型

转载 作者:搜寻专家 更新时间:2023-11-01 02:45:56 25 4
gpt4 key购买 nike

我正在尝试在 Java 中有条件地创建一个通用实例,其中类型作为参数传递。是这样的:

private void doStuff(somethingThatDescribesWhatTShouldBeHere) {

ArrayList<thetypeTthatwaspassedin> = new ArrayList<thetypeTthatwaspassedin>
... rest of logic
}

如果没有 ArrayList<T>,我一辈子都想不出 T 参数应该是什么样子。向我尖叫。

想法是如果T是一个字符串,然后是一个 ArrayList<String>被实例化.. 如果它是 Foo 那么一个 ArrayList<Foo>在内部实例化。

请帮忙

最佳答案

好吧,就让doStuff通用的:

// If you can, pass a parameter of type T :
private <T> void doStuff(T something) {

ArrayList<T> = new ArrayList<T>();
... rest of logic
}
// so it can be called like that :
YourType param = ...;
foo.doStuff(param);

// If you can't pass a parameter of type T, you'll have
// to explicitly tell the compiler which type to use :
foo.<YourType>doStuff();

传递 Class<T>正如 Stijn Geukens 所暗示的那样,如果您不需要传递实际对象,这也是一种避免使用丑陋语法的常用方法。

关于java - 将 T 作为参数传递给以在 Java 中有条件地创建泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119470/

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