我正在使用以下代码在反射中查找原始类型和一些对象的类成员,我的问题是是否有一种方法可以确定字段的类型是原始类型、对象、类引用,因为我想根据类型调用特定的方法。例如,如果字段是原始类型,则调用handlePrimitive方法;如果字段类型是其他类型引用(在下面的示例中为SalesOrderItemPK primaryKey;),则调用handleClassReferance等方法。
仅供理解,我需要获取类并进行调查,根据成员类型创建数据...
示例的类应该像这样,我需要知道primaryKey键以创建一个对象。
仅供理解,我需要获取类并进行调查,根据成员类型创建数据...
for (Object clsObj : listClsObj) {
Field[] declaredFields = clsObj.getClass().getDeclaredFields();
numOfEntries = 1;
do {
Object newInstance = clsObj.getClass().newInstance();
for (Field field : declaredFields) {
// Get member name & types
Class<?> fieldType = field.getType();
Type genericType = field.getGenericType();
String fieldTypeName = fieldType.getName();
String memberName = field.getName();
if (genericType instanceof ParameterizedType) {
ParameterizedType pt = (ParameterizedType) genericType;
for (Type typeOfReferance : pt.getActualTypeArguments()) {
String classTypeName = typeOfReferance.toString();
String[] parts = classTypeName.split(" ");
memberReferance = parts[1];
我希望调用特定的方法,该方法可以根据数据类型处理字段。
public static SwitchInputType<?> switchInput(final String typeName, final String memberName, final int cnt) {
if (typeName.equals("java.lang.String")) {
return new SwitchInputType<String>(new String(memberName + " " + cnt));
} else if (typeName.equals("char")) {
return new SwitchInputType<Character>(new Character('a'));
示例的类应该像这样,我需要知道primaryKey键以创建一个对象。
@Entity
public class SalesOrderItem
{
@EmbeddedId
SalesOrderItemPK primaryKey;
private String ProductId;
private String Notes;
field.getType().isPrimitive()
而无需进行额外的Class
转换。 - Timo