【发布时间】:2015-01-08 08:47:40
【问题描述】:
我有一个接受对象作为输入的记录器,这对我来说相当方便。但是现在我必须记录一个int[] 类型的输入。我想修改方法,以便正确记录任何数组或 Iterable。
在c#中,我会这样做:
int[]data=new int[10];
object tmp=data;
.....
if (tmp is IEnumerable)
{
StringBuilder _tmp = new StringBuilder();
foreach (var i in (IEnumerable)tmp)
{
if (_tmp.Length > 0)
{
_tmp.Append(",");
}
_tmp.Append(i);
}
var r = _tmp.ToString();
}
我尝试检查 int[] 与 Iterable(不是),然后尝试检查 tmp.getClass().isArray(),这有效,但现在我无法枚举该数组的成员。我需要一种适用于任何数组或对象列表的方法。
如何在 Java 中正确执行此操作?
【问题讨论】:
-
试试
tmp.getClass().getComponentType() -
为什么要删除类型信息?
-
@ElliottFrisch logger 方法看起来像
Log(Object... arguments),我觉得这个用起来真的很方便
标签: java arrays logging iterable