Technically speaking, you CAN use instanceof
to check if an object is a certain type.
但是...... 《<><><><><0>>>>>>>>>>。
您公布方法的方式,可以接受任何种类的清单,因此必然会是A或B。
It s hard to tell what you re trying to do, but you probably should make your method generic.
You can do so like this:
public static <T> String method(List<T> arg) {
// We now know that the type of the list is T, which is
// determined based on the type of list passed to this
// method. This would demonstrate the point better if
// the return type was T, but I m leaving the return type
// as String, because that s what your code returns.
}
www.un.org/spanish/ecosoc 这里有一个较好的例子::
如果你想建立一种通用的方法,把清单的第一个要素归来,你会这样做:
public static <T> T firstElement(List<T> theList) {
if (theList == null) {
return null;
}
T objectOfTypeT = theList.get(0);
return objectOfTypeT;
}
注:回归类型现为<代码>。 T。
由于我们使这一方法具有通用性,它可以回去清单中使用的那种方法。
通常,你只是返回<代码>theList.get(0),但我增加了一条线,使一般用途更为明显。
<>Explanation of syntax:
<代码><T>表示这种方法采用一种称为T的参数。
T,即返回类型(与通常返回Sting、Integer等)。
The T
in the List parameter is how the compiler knows what the heck a T
is.
这使得汇编者能够说:“这一方法期望的是T. Oh look...的某种类型。 清单也是T类。 如果有人通过这一方法排出“强”名单,那么T必须是“强硬”。 如果有人通过这种方法填写一份清单,T必须是一种 Integer。
相比之下,你的计算方法只能是 ,它并不了解清单中所用的类型。
Also...
如果A和B两人都延长同一类别,即“TheParentClass”,你可以宣布:
public static String method(List<? extends TheParentClass> arg)
这样,你们就更了解贵方参数的可能类型(并且可以汇编时间类型检查)。