我正在学习 Java 泛型类型。
我有抽象类 AbstractInputdata。
public abstract class AbstractInputData {
....
}
一些扩展 AbstractInputData 的类
public class Email extends AbstractInputData{
...
}
public class Mobile extends AbstractInputData{
...
}
......
A.
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/