java - 如何允许两种类型的数据作为参数

标签 java generics

private void setSomething(final List<?> someListOfObjects){

}

编辑

抱歉,我想我让其他人感到困惑了-

我希望列表仅包含 Double 和/或自定义对象(用户定义的类)。它可以是两者的混合。我如何保证呢?

<小时/>

编辑更多细节:

我们使用 Apache POI 为不同的客户端程序生成简单的 Excel 文件。我正在为此编写一个模板。要创建行,用户可以传递 double 列表作为行的单元格值,并且程序使用单元格的默认样式 (CellStyle)。此外,用户还可以传递一个由 double 值和一种自定义对象类型组成的列表。自定义对象是一个类,其中定义了单元格值和该单元格的样式。因此,当我创建一行时,我会获取列表的值。如果该值为 double 值,我将应用该单元格的默认单元格样式,但如果该值为自定义对象,则我将应用给定的样式。

最佳答案

I want the list to contain only Double and/or a custom object (a user defined class). It can be a mix of the two. How do I assure it?

这是不可能的,而且它的设计很糟糕,因为它破坏了类型安全 - 您无法知道列表在给定索引处包含什么类型。

我们必须更多地了解您实际想要做什么,才能说出最佳的设计解决方案。

编辑: 您不应允许在列表中混合原始值和样式值(“自定义对象”),而应仅允许同质列表和一种生成具有默认样式的“自定义对象”的便捷方法。

关于java - 如何允许两种类型的数据作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5065169/

相关文章:

Android:我可以在 AsyncTask 中使用通用返回类型吗 - doInBackGround

java - 我们可以重构这些方法吗?

java - Firebase 身份验证用户为空

generics - 我可以创建与实现模式的泛型类型的匹配吗?

Java 泛型和类层次结构

generics - ceylon max{} 的返回类型

T 和 ? 之间的 Java 泛型区别?延伸 T

java - 如何使用 JPA 和 Hibernate 初始化数据库表(插入行)?

java - Tomcat7 适用于端口 8080 但不适用于 80,Windows7

java - 创建 3D 程序的工具