gpt4 book ai didi

java - 变量数量可变的类

转载 作者:行者123 更新时间:2023-12-02 05:15:48 25 4
gpt4 key购买 nike

我需要一个可以存储和返回不同类型的值的类。我无法定义自己的类(class)。我发现唯一满足我需求的类是 List 类。我从数据库表中检索值。这是我的方法:

//the total number of these variables can vary. The same is true for their types;
int intValue = 1;
String stringValue = "text 1";
byte[] dataValue = new byte[4];


List row = new ArrayList();
row.add(intValue);
row.add(stringValue);
row.add(dataValue);

List rows = new ArrayList();
rows.add(row);

intValue = 6;
stringValue = "text 2";
dataValue = new byte[8];

row = new ArrayList();
row.add(intValue);
row.add(stringValue);
row.add(dataValue);

rows.add(row);

String text1 = (String) ((List)rows.get(0)).get(1);
String text2 = (String) ((List)rows.get(1)).get(1);

您能否建议一种更好的方法来存储泛型类型数据,因为我认为我的实现是错误的。

最佳答案

嗯...您可以使类变得通用,并根据您要使用的类型进行参数化。或者你可能有 T1 t1s[]; T2 t2s[]; T3 t3s[] 在您的代码中,只需为每条数据保留变量,并理解一次只有一个是 Activity 的。

但是你真的指的是数据吗?因为数据应该是字符串或者JSON或者XML什么的。在这种情况下,只需存储并传递它。

但是您真的想要无限数量的任意数据类型的对象吗?好吧,你到底要如何用它来编码?你会得到一个可以是任何类型的对象,所以你不能调用它的任何特定方法。您不知道类型是什么,因为它是完全动态的,因此您甚至无法使用一堆 instanceof 语句进行提取。

或者也许您的所有数据都有一个公共(public)基类,而您只需要基类方法?完美,扩展一个公共(public)基类。这就是继承的用途。

tl;dr:你的设计很糟糕,Java 就是为了禁止它而设计的。修复它。

关于java - 变量数量可变的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26958636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com