我正在学习 Java 泛型类型。

我有抽象类 AbstractInputdata。

public abstract class AbstractInputData {
....
}

一些扩展 AbstractInputData 的类
public class Email extends AbstractInputData{
...
}
public class Mobile extends AbstractInputData{
...
}
......

一种。
public class ProcessorA {
public static boolean isCustomData(AbstractInputData abstractInputData) {
....
}
}

B.
public class ProcessorB {
public static <T extends AbstractInputData> boolean isCustomData(T t) {
...
}
}

A 和 B 之间有什么区别吗?

最佳答案

唯一的区别是第二种方法通过反射显示为泛型类型方法。除了像这样的奇怪情况外,它的行为将相同

processorB.<MyType>isCustomData(t); // won't compile unless t is a MyType

您必须告诉它您希望它匹配什么类型,恕我直言,这不是那么有用。

关于java通用类型与参数的抽象类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18632197/

10-11 03:35