El tipo de enumeración aquí tiene su propio método de reflexión:
Aquí primero resumo la lógica:
1. Use getEnumConstatnts para devolver los objetos actualmente en la enumeración.
2. Obtenga el método a través de getMehod.
3. Finalmente use este objeto para llamar a sus métodos.
La captura de pantalla del programa es la siguiente:
La enumeración correspondiente:
El código fuente es el siguiente:
Em.java
package en;
public enum Em {
ONE_EM(10001, "ONE"),
TWO_EM(10002, "TWO"),
THREE_EM(10003, "THREE");
private Integer emID;
private String emString;
Em(Integer emID, String emString){
this.emID = emID;
this.emString = emString;
}
public Integer getEmID() {
return emID;
}
public String getEmString() {
return emString;
}
}
main.java
import en.Em;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class main {
public static void main(String args[]) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
//打印反射数据
Class emCLass = Em.class;
Object[] enumConstants = emCLass.getEnumConstants();
Method getEnumID = emCLass.getMethod("getEmID");
Method getEnumString = emCLass.getMethod("getEmString");
for(Object item : enumConstants){
Object invokeID = getEnumID.invoke(item);
Object invokeString = getEnumString.invoke(item);
System.out.println("invokeID:" + invokeID + "\tinvokeString:" + invokeString);
}
}
}