15
整数から長整数への変換
リフレクションを使用してフィールドの値を取得する必要があります。たまたま、フィールドのデータ型が何であるかが常にわかりません。そのため、またコードの重複を避けるために、次のメソッドを作成しました。 @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 …
108
java
reflection
casting