将整数转换为Long
我需要使用反射获取字段的值。碰巧的是,我并不总是确定字段的数据类型是什么。为此,为了避免某些代码重复,我创建了以下方法: @SuppressWarnings("unchecked") private static <T> T getValueByReflection(VarInfo var, Class<?> classUnderTest, Object runtimeInstance) throws Throwable { Field f = classUnderTest.getDeclaredField(processFieldName(var)); f.setAccessible(true); T value = (T) f.get(runtimeInstance); return value; } 并使用如下方法: Long value1 = getValueByReflection(inv.var1(), classUnderTest, runtimeInstance); 要么 Double[] value2 = getValueByReflection(inv.var2(), classUnderTest, runtimeInstance); 问题是我似乎无法转换Integer为Long: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long …