这个泛型方法签名是什么意思?
public <S, D> D map(S sourceObject, java.lang.Class<D> destinationClass);
我指的是<S, D>
。此方法返回与第二个参数相同类型的对象。
我能不能只写
public D map(S sourceObject, java.lang.Class<D> destinationClass);
这意味着这个方法调用需要两个类型参数:S和D。
<S, D>
是声明该方法是泛型的,并且需要两个类型参数,这些参数在方法签名中作为占位符使用。
当你调用该方法时,可以传递这些参数,或者根据传递的参数表达式推断出参数类型,例如:
String val = map(10, String.class);
在这种情况下,S是整数
,D是字符串
S
类型参数,因为它只在方法签名中被使用了一次,并将其替换为Object
。 简化后的代码如下:public <D> D map(Object sourceObject, java.lang.Class<D> destinationClass);
<S, D>
表示该方法是通用的(独立于类)。获取类型为S
和类D
(Class<D>
)的参数。并返回类型为D
的值 - 独立于其他类型。
public <D> D map(Object sourceObject, java.lang.Class<D> destinationClass);
。它的意思是一样的,类型参数S
是不必要的。 - qqilihq