【发布时间】:2020-07-17 20:43:58
【问题描述】:
我想要一个函数,它接受一个参数,然后在 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);
}
【问题讨论】:
-
什么是“消息”,“getArray”返回什么?
-
您能否发布完整的独立程序示例来说明您正在尝试做什么? “当我执行初始化 ArrayList 的行时,我需要变量 dataType 成为 的内容” - 您没有初始化 ArrayList? “Vector newRow”或“t.getInfo()”是否与问题相关?
-
您是否希望能够访问泛型类型参数 T 的
getinfo方法?这是行不通的,因为 T 可以是任何东西,例如 String 或 Integer,任何没有你的getinfo方法的类。你在哪里定义了 getinfo?