java - 将集合中的元素类型传递给初始化 ArrayList(Java)的函数?
问题描述
我想要一个函数,它接受一个参数,然后在 ArrayList 中设置 E ,其中 E 是此集合中元素的类型。因此,显示我想要做的最简单的代码就是这样,其中 E 是我不知道的。
private void createArray(E dataType) {
ArrayList<dataType> list = (ArrayList<dataType>) message.getArray();
}
这是可能吗?我试图通过查看 ArrayList 类来找到答案,但我对 Java 没有太多经验。
编辑:我不确定我的问题是否足够清楚......我不需要传递变量 dataType。当我执行初始化 ArrayList 的行时,我需要变量 dataType 成为 <> 中的内容。我找到了以下答案:Pass class type as parameter to use in ArrayList? 但这对我不起作用。我需要使用数组列表中的元素并调用仅适用于该类的方法...
private <T> void createModel(String SQLcomm, Class<T> dataType, DefaultTableModel table) {
Parcel parc = SQLtask(SQLcomm, "array");
ArrayList<T> list = (ArrayList<T>) parc.getData();
for (T t: list) {
Vector<Object> newRow = t.getinfo(); //can't do t.getinfo()?
table.addRow(newRow);
}
解决方案
可以,但必须将数据类型作为类参数传递,这在 java 中称为泛型(有关泛型的更多信息,这里是官方 java 文档的链接)示例:
// E your data type
public class A<E> {
//Maybe you get data from database (ResultSet)
public void createArray(ResultSet message, String index) throws SQLException {
ArrayList<E> list = (ArrayList<E>) message.getArray(index);
//the rest of the code...
}
}
有关处理数组的更多信息,请参阅官方文档。
推荐阅读
- parsing - 如何解决我的代码中的野牛减少/减少冲突?
- javascript - 如何在要在浏览器中加载的模块中导入类型信息
- java - Android 应用选项卡切换崩溃
- javascript - 如何使用完整的代码在 DOJO 中禁用 REST 树中的缓存以重现它
- java - 接受并返回相同类型的通用功能接口
- java - 从 main() 访问静态内部类中的私有类的方法
- php - 无法在 php 中的 Google 日历中一次插入多个事件
- python - 使用 python 在文件中拆分和保存文本
- excel - 如何控制 VBA 类何时终止
- sql - 如何使用成员实体创建视图实体是另一个视图实体?