我需要创建一个ArrayList
并用BigDecimals
和Date
元素填充它,我该怎么办?
我应该在ArrayList中创建一个包含我需要的所有类型的新类,然后将其用作类型吗?
答案 0 :(得分:6)
知道你想要达到的目标会很有趣。
如果BigDecimal
和Date
具有逻辑关系,例如就像银行交易的金额和它的放置日期一样,你应该考虑引入一个将两者结合在一起的新类(希望名为BankTransaction)。您可以将此类的对象放在List
。
如果BigDecimal
和Date
彼此无关,您为什么要将它们存储在同一个列表中?在这种情况下,您会混淆其他开发人员,因为他们必须查看解释List的代码,并且由于列表的类型,他们无法猜测它的含义。
尽管如此,您可以使用List<Object>
方法,但这不是像List<BankTransaction>
这样的自解释代码。
答案 1 :(得分:1)
只需使用List<Object>
List<Object> list = new ArrayList<Object>();
虽然这种方式正常并适合您的问题,但您应该明确检查您的要求,以及是否确实需要将Date
和BigDecimal
添加到同一List
,因此是不一个好习惯。
答案 2 :(得分:1)
使用如下代码:
List<Object> list2 = new ArrayList<Object>();
list2.add(new BigDecimal(3242));
list2.add(new Date());
for (Object object : list2) {
if(object instanceof Date) {
// your logic on date
} else if (object instanceof BigDecimal) {
// your logic on BigDecimal
}
}
答案 3 :(得分:0)
Java中的所有类都继承自基类Object
类,因此您只需创建一个接受Object
个实例的ArrayList,并在其中添加您喜欢的任何内容:
List<Object> list = new ArrayList<Object>();
list.add(new Date()); // adds a Date instance
list.add(new BigDecimal()); // adds a BigDecimal
答案 4 :(得分:0)
ArrayList<Object> list = new ArrayList<Object>()
试试这个。使用java的Object类