Java 泛型方法签名说明

2022-09-02 01:39:32

此泛型方法签名是什么意思

public <S, D> D map(S sourceObject, java.lang.Class<D> destinationClass);

我指的是.
此方法返回在第二个参数中发送的相同类型的对象。<S, D>

我不能只写吗

public D map(S sourceObject, java.lang.Class<D> destinationClass);

答案 1

这意味着此方法调用采用两个类型参数:S 和 D。

该部分旨在声明此方法是泛型的,并采用两个类型参数,然后将它们用作方法签名中实际类型的占位符。<S, D>

调用该方法时,要么提供参数,要么从作为参数传递的表达式类型中推断出参数,如下所示:

String val = map(10, String.class);

在本例中,S 是,D 是IntegerString


答案 2

我想纠正后仍然有错误(或者你应该向我们展示整个类,如果它也包含类型参数),但我想我理解你的问题;如注释中所述,您可以简单地删除type参数,因为它仅在方法签名中使用一次,并将其替换为。然后,简化的变体将如下所示:SObject

public <D> D map(Object sourceObject, java.lang.Class<D> destinationClass);

推荐