Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-转换为未知类型_Java_List_Casting - Fatal编程技术网

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