java的反射机制
来源:互联网 发布:如何突破公司网络限制 编辑:程序博客网 时间:2024/04/30 16:35
一直不太明白java的反射机制,今天稍微看了下,写了一个例子:
public static void main(String[] args) {try {Class clazz = Class.forName("cn.com.mysite.sink.ScalaSink");Field[] fields = clazz.getDeclaredFields(); for(int i = 0; i < fields.length; i++) { // 权限修饰符 int mo = fields[i].getModifiers(); String priv = Modifier.toString(mo); // 属性类型 Class<?> type = fields[i].getType(); System.out.println(priv + " " + type.getName() + " " + fields[i].getName() + ";"); } System.out.println(); System.out.println("Public fields: "); fields = clazz.getFields(); for(int i = 0; i < fields.length; i++) { int mo = fields[i].getModifiers(); String priv = Modifier.toString(mo); // 属性类型 Class<?> type = fields[i].getType(); System.out.println(priv + " " + type.getName() + " " + fields[i].getName() + ";"); } Method method=clazz.getDeclaredMethod("isEmpty",String.class); method.setAccessible(true); Object o = method.invoke((cn.com.mysite.sink.ScalaSink)clazz.newInstance(),""); System.out.println(o);} catch (Exception e) {e.printStackTrace();}}
打印结果:
private static final org.slf4j.Logger logger;public static final java.lang.String TOPIC_HDR;private java.lang.String isWhite;private java.util.Properties kafkaProps;private java.lang.String topic;private int batchSize;private java.lang.String hostname;private java.lang.String uripath;private java.lang.String field;private java.lang.String dataSource;private [Ljava.lang.String; f;private java.util.List messageList;private org.apache.flume.sink.SinkCounter counter;private com.ibm.tivoli.unity.common.rest.RestClient restClient;private com.ibm.tivoli.unity.common.rest.RequestResult result;private java.text.SimpleDateFormat df;private java.text.SimpleDateFormat format;private java.util.Map map;private com.ibm.json.java.JSONObject batch;private java.lang.StringBuilder sb;private com.ibm.json.java.JSONObject job;private static java.security.MessageDigest digest;private java.util.concurrent.ExecutorService threadPool;private long bytes;private int _count;private java.io.File timeFile;private long lastSendTime;private long sendTimeInterval;private boolean isWrite;private java.io.FileWriter writer;private boolean countFlowEnable;Public fields: public static final java.lang.String TOPIC_HDR;true
class里面有几个方法:getDeclaredFields();getFields(); getDeclaredMethod();getMethod();
取值不太一样,getFields()与getMethod()只能取修饰符为public的属性跟方法,而其他两个则可以取到任意的属性和方法。
0 0
- java的反射机制
- Java的反射机制
- Java的反射机制
- Java 的反射机制
- JAVA的反射机制
- Java 的反射机制
- java的反射机制
- Java的反射机制
- Java 的反射机制
- JAVA的反射机制
- Java 的反射机制
- java的反射机制
- java的反射机制
- java的反射机制
- Java的反射机制
- Java的反射机制
- Java的反射机制
- Java的反射机制
- 33、gzip命令
- Java注解
- eclipse和intellij IDEA项目概念区别
- CvIntHaarClassifier
- 支持向量机:Duality(转载,防止丢失)
- java的反射机制
- 让uboot按下指定键停止autoboot
- 怎么把word转成pdf格式查看
- EXFAT和NTFS哪个好
- Linux使用dd命令测试硬盘读写速度
- Android Studio导入第三方类库的方法
- java判断字符串是否为空
- 安卓逐帧动画
- TI开发系列讲座