我需要创建一个并用一个元素ArrayList
填充它,我该怎么做?BigDecimals
Date
我应该在 ArrayList 中创建一个包含我需要的所有类型的新类,然后将其用作类型吗?
知道您尝试实现的目标会很有趣。
如果BigDecimal
s 和Date
s 确实有逻辑关系,例如银行交易的金额和它的放置日期,那么您应该考虑引入一个将两者结合在一起的新类(希望命名为 BankTransaction)。您可以将此类的对象放在List
.
如果BigDecimal
s 和Date
s 彼此无关,为什么要将它们存储在同一个列表中?在这种情况下,您会混淆其他开发人员,因为他们必须查看解释列表的代码,并且由于列表的类型,他们无法猜测其含义。
不过,您可以使用该方法,但这不会是例如List<Object>
不言自明的代码。List<BankTransaction>
只需使用一个List<Object>
List<Object> list = new ArrayList<Object>();
尽管这种方式可以正常工作并且适合您的问题,但您应该明确检查您的要求以及是否确实需要将Date
s 和BigDecimal
s 添加到相同的 s 中List
,因为这不是一个好习惯。
使用如下代码:
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
}
}
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
ArrayList<Object> list = new ArrayList<Object>()
尝试这个。使用 java 的 Object 类