gpt4 book ai didi

向上转换前的java反射字段类型

转载 作者:行者123 更新时间:2023-11-30 08:34:47 24 4
gpt4 key购买 nike

我有一个简单的类

public class SomeService {

private Number number = new Integer(0);
}

在向上转型之前是否可以通过java反射找出字段类型?

我可以只获取 Number 类型而不是 Integer:

Field field = MealService.class.getDeclaredField("number");    
field.setAccessible(true);
System.out.println("impl:"+field.getType());

请指教。

最佳答案

field.getType() returns the declared type.

如果您想知道实例化类型,您必须首先实例化该字段。

import java.lang.reflect.Field;

public class InstanceTypeInfo {
private Number num = new Integer(0);

public static void main(String[] args) throws SecurityException,
NoSuchFieldException, IllegalArgumentException,
IllegalAccessException {
InstanceTypeInfo dI = new InstanceTypeInfo();
Field field = dI.getClass().getDeclaredField("num");
System.out.println("Instance Type :" + field.get(dI).getClass());
System.out.println("Decleration Type:" + field.getType());
}
}

关于向上转换前的java反射字段类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38618105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com