Cet article présente principalement la méthode de Java pour obtenir la valeur de l' objet basée sur la réflexion. Il analyse également les méthodes d'implémentation et les techniques d'exploitation pertinentes de Java pour obtenir l'attribut d'objet. valeur basée sur la réflexion sous forme d'exemples., Les amis qui en ont besoin peuvent se référer à
L'exemple dans cet article décrit la méthode d'obtention des valeurs d'attribut d'objeten Java basée sur la réflexion. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Obtenez les attributs et les valeurs d'attributdans l'objet via le mécanisme de réflexion. Ce n'est pas un problème d'être privé dans l'objet, mais. parfois des exceptions seront signalées dans d’autres classes. L'exemple suivant se trouve dans cet objet
/** * Engine entity. @author MyEclipse Persistence Tools */ public class Engine implements java.io.Serializable { // Fields private Long engineId; private String engineName; private String engineType; // Constructors /** default constructor */ public Engine() { } /** minimal constructor */ public Engine(Long engineId) { this.engineId = engineId; } public Engine(String engineName, String engineType) { this.engineName = engineName; this.engineType = engineType; } /** full constructor */ public Engine(Long engineId, String engineName, String engineType) { this.engineId = engineId; this.engineName = engineName; this.engineType = engineType; } // Property accessors public Long getEngineId() { return this.engineId; } public void setEngineId(Long engineId) { this.engineId = engineId; } public String getEngineName() { return this.engineName; } public void setEngineName(String engineName) { this.engineName = engineName; } public String getEngineType() { return this.engineType; } public void setEngineType(String engineType) { this.engineType = engineType; } public static void main(String[] args) throws Exception { Engine m = new Engine("汽车","发动机"); Class clazz = m.getClass(); Field[] f = clazz.getDeclaredFields(); String[] name = field2Name(f); Object[] value = field2Value(f, m); showNameAndValue(name, value); } public static void showNameAndValue(String[] name, Object[] value) { for (int i = 0; i < name.length; i++) { System.out.println("--" + i + "--"); System.out.println("name:" + name[i]); System.out.println("Value:" + value[i]); System.out.println("-- --"); } } public static String[] field2Name(Field[] f) { String[] name = new String[f.length]; for (int i = 0; i < f.length; i++) { name[i] = f[i].getName(); } return name; } public static Object[] field2Value(Field[] f, Object o) throws Exception { Object[] value = new Object[f.length]; for (int i = 0; i < f.length; i++) { value[i] = f[i].get(o); } return value; } }
Si vous souhaitez appeler la valeur d'attribut d'un attribut privé, vous devez appeler sa méthode get. La méthode spécifique est :
Modifiez le. Méthode field2Value pour De la manière suivante, les valeurs d'attributs privés peuvent également être obtenues dans d'autres classes
public static Object[] field2Value(Field[] fields, Object o) throws Exception { Object[] values = new Object[fields.length]; Class classType = o.getClass(); for (int i = 0; i < fields.length; i++) { String fieldName = fields[i].getName(); String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getMethodName = "get" + firstLetter + fieldName.substring(1); Method getMethod = classType.getMethod(getMethodName, new Class[] {}); values[i] = getMethod.invoke(o, new Object[] {}); } return values; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!