1 Class cls = Object.class;
2 Field flild = cls.getDeclaredField("");
3 Class<?> type = field.getType();
4 Type gType = field.getGenericType();
还要强转为
if (gType instanceof ParameterizedType){
ParameterizedType pType = (ParameterizedType) gType;
5 Type[] tArgs = pType.getActualTypeArguments();
6 Type rType = pType.getRawType()
public class Score {
private Map<String,Integer> score;
private int grade;
}
/**
* Created by apple on 17/8/29.
*/
public class ScoreTest extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Class cls = Score.class;
try {
Field field_score = cls.getDeclaredField("score");
Field field_grade = cls.getDeclaredField("grade");
Class<?> type_score = field_score.getType();
Class<?> type_grade = field_grade.getType();
Log.d("shj--",type_score.getName());
Log.d("shj--",type_grade.getName());
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
}
D/shj--: java.util.Map
D/shj--: int
public class ScoreTest extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Class cls = Score.class;
try {
Field field = cls.getDeclaredField("score");
Type type = field.getGenericType();
if (type instanceof ParameterizedType){
ParameterizedType pType = (ParameterizedType) type;
Type[] tArgs = pType.getActualTypeArguments();
for (Type t:tArgs){
Log.d("shj--",t.toString());
}
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
}
D/shj--: interface java.util.Map
D/shj--: class java.lang.String
D/shj--: class java.lang.Integer