Java-转换为未知类型
我正在创建一个方法,该方法接收包含未知类型的列表。该方法返回列表的最后一个元素。我将有不同的列表,其中包含传递到此方法的不同类型的对象。我需要弄清楚传入的列表中最后一个元素的类类型。然后,我会想投下我要回到的东西。我希望这个方法是非常通用的,我不希望每次我想传递一个新类类型的列表时都要更新它。有什么想法吗Java-转换为未知类型,java,list,casting,Java,List,Casting,我正在创建一个方法,该方法接收包含未知类型的列表。该方法返回列表的最后一个元素。我将有不同的列表,其中包含传递到此方法的不同类型的对象。我需要弄清楚传入的列表中最后一个元素的类类型。然后,我会想投下我要回到的东西。我希望这个方法是非常通用的,我不希望每次我想传递一个新类类型的列表时都要更新它。有什么想法吗 public static Object getLastElement(List<? extends Object> cells) { return cells.get(c
public static Object getLastElement(List<? extends Object> cells) {
return cells.get(cells.size() - 1);
}
publicstaticobjectgetlastElement(List您需要将方法泛化以实现此目的,如下所示:
public static <T> T getLastElement(List<T> cells) {
return cells.get(cells.size() - 1);
}
公共静态T getLastElement(列表单元格){
返回cells.get(cells.size()-1);
}
在这里,您将方法的返回类型声明为与列表中的元素类型相同的泛型类型。因此,您甚至不必强制转换结果,因为它已经在所需的类型中。您可以使用
.getClass()
和在该选项上切换
——但无法在返回类型中指定该选项,并且通过返回对象
并使用List@BenjaminGruenbaum:发布答案!您是否正在做比返回列表中最后一个元素更复杂的事情。如果不是,为什么不使用list方法直接返回最后一个元素而不需要方法调用?谢谢,这正是我需要的。@Lolo