如何在Java中创建泛型方法?

如何在Java中创建泛型方法?,java,generics,Java,Generics,我有以下方法: public static void update(String name) { CustomTextType obj = findByName(name); ... } 我想让它成为一个通用方法,这样我就不需要为每个新的自定义类型编写新代码。我可以这样做,这需要在调用update()之前实例化对象: 出于好奇,我想知道是否有一种方法可以使用Java泛型实现这一点: // note: this is an example and does not work pu

我有以下方法:

public static void update(String name) {
    CustomTextType obj = findByName(name);
    ...
}
我想让它成为一个通用方法,这样我就不需要为每个新的自定义类型编写新代码。我可以这样做,这需要在调用update()之前实例化对象:

出于好奇,我想知道是否有一种方法可以使用Java泛型实现这一点:

// note: this is an example and does not work
public static void update(String name, <T> type) {
    type var = findByName(name);
    ...
}
//注意:这只是一个示例,不起作用
公共静态无效更新(字符串名称、类型){
类型var=findByName(名称);
...
}
有没有办法在Java中实现这一点?

公共静态void更新(字符串名,T类型){
public static <T> void update(String name, T type) {
    //logic dealing with `T`.
}
//处理“T”的逻辑。 }

请注意,在这种情况下,
T
将是可恢复的。
Foo
(其本身包括可从
instanceOfT.getClass()
)获取的
Class
)或
T
本身已传入。

如果它们有共同点,则是。。但是您必须看到返回的
findByName()
泛型方法是这样的。是的,java泛型非常简单,就像这个公共静态void name(T obj){}您的示例毫无意义。为什么只使用
Object
参数来重新分配它
obj=findByName(name)?方法不是“返回T”(
void
)@RC。对不起,我把这篇文章和另一篇关于泛型的文章搞混了。谢谢你的及时回复。我发现我仍然需要写“静态无效”,否则“T”无法解决。我是否误解了上述评论?另外,这个方法的调用是什么样子的?谢谢你的澄清。不过,我不确定这比“voidupdate(stringname,objectobj)”有什么好处,因为我没有返回相同的类型。在使用上述示例时,我似乎无论如何都需要创建“someObject”(例如更新(“foo”,new CustomTextType()))。对吗?@TERACytE是的,在这里使用通用方法没有好处。
public static <T> void update(String name, T type) {
    //logic dealing with `T`.
}