【发布时间】:2018-12-22 00:00:55
【问题描述】:
我想通过引用发送不同类型的列表,并作为工具功能的一般接收。之后,进行向下转换并恢复原始类型。但它没有醒来。有人有解决方案来完成这项工作吗?
public Class A{
...
List<A> A_List= readAList();
saveToExcelTables(A_List,"A")
...
}
public Class B{
...
List<B> B_List= readBList();
saveToExcelTables(B_List,"B")
...
}
public Class Tools{
public static void saveTableToExcel(List<T> obj,string typeTyoe){
if(tableType == "A")
{
List<A> A_List= (A) obj;
}
if(tableType == "B")
{
List<B> B_List= (B) obj;
}
}
【问题讨论】:
-
为什么用 Java 标记?
-
似乎是对泛型的滥用。事实上,泛型适用于 any 类型,而不仅仅是
A或B。那么当有人决定用List<C>调用你的方法时,你会怎么做呢?甚至是匿名类型?在这种情况下,SafeTableTopExcel无能为力。所以不要假装你可以传递任何类型,而实际上你只需要几个。话虽如此,您应该为不同的类型编写不同的方法,或者依赖所有类型实现的通用接口。 -
你想对这些列表做什么?
-
在我的情况下,我将只有 5 种类型,我将不得不传递给这个函数,但我希望这个方法接收这些列表并识别从哪里(A 类,B 类,类C ...)它来自。除此之外,我有一个已经可以使用的代码,它采用这个列表并保存在 Excel 表中