反射中 invoke方法 getMethod方法 getClass()方法
package com.swift; import java.util.*;
import java.lang.reflect.*; public class ReflectDemo {
public static void main(String[] args) throws Exception {
ArrayList<String> list = new ArrayList<String>();
list.add("enen");
for(String str:list) {
System.out.println(str);
} Class<? extends ArrayList> clas=list.getClass();
ArrayList<String> li=(ArrayList<String>) clas.newInstance();
li.add("san");
for(String str:li) {
System.out.println(str);
} Method[] metho=clas.getMethods();
for(Method met:metho) {
System.out.println(met);
}
Method meth=clas.getMethod("add",Object.class);//后边的.class 是add方法的参数的类型类
meth.invoke(li, "123");
for(String str:li) {
System.out.println(str);
} Class<?> c=Class.forName("com.swift.ADemo");
ADemo a=(ADemo) c.newInstance();
a.fun(); Class cl=a.getClass();
ADemo b=(ADemo) cl.newInstance();
b.fun();
Method met=cl.getMethod("fun");
met.invoke(b); Method[] m=c.getDeclaredMethods();
for(Method me:m) {
System.out.println(me);
} Method method=c.getMethod("fun");
method.invoke(a); }
} class ADemo{
public void fun() {
System.out.println("A demo.");
}
}
反射中 invoke方法 getMethod方法 getClass()方法的更多相关文章
- JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别 关于获取类的字段有两种方式:getFields()和getDeclaredFields().我们先来 ...
- [转]JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
关于获取类的字段有两种方式:getFields()和getDeclaredFields().我们先来看看这两者的区别吧: getFields():获得某个类的所有的公共(public)的字段,包括父类 ...
- java反射中Method类invoke方法的使用方法
package com.zsw.test; import java.lang.reflect.Method;import java.lang.reflect.InvocationTargetExcep ...
- Java反射中的getClass()方法
Java反射学习 所谓反射,可以理解为在运行时期获取对象类型信息的操作.传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代 ...
- Java反射中method.isBridge() 桥接方法
桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法.我们可以通过Method.isBridge()方法来判断一个方法是 ...
- java 反射机制之 getDeclaredMethod()获取方法,然后invoke执行实例对应的方法
关于反射中getDeclaredMethod().invoke()的学习,来源于项目中的一行代码: SubjectService.class.getDeclaredMethod(autoMatchCo ...
- super.getClass()方法调用
下面程序的输出结果是多少?import java.util.Date;public class Test extends Date{public static void main(String[] a ...
- super.getClass()方法
下面程序的输出结果是多少? importjava.util.Date; public class Test extends Date{ public static void main(String[] ...
- Java基础知识强化26:Object类之hashCode()方法、getClass()方法
1. Object类的hashCode()方法,如下: public int hashCode():返回该对象的哈希码值,这个值和地址值有关,但是不是实际地址值(哈希码值是根据实际地址值转化过来的 ...
随机推荐
- 添加自定义字段至Solr 的 ExtractingRequestHandler
利用SolrJ 上传文件至Solr进行索引,比如索引一个test.pdf文件,我想在索引里添加一个文件名的字段,我在manager-schema里添加了一个字段,为“fileName”, 然后按照 g ...
- MySQL变更之:Online DDL 和 PT-OSC 该选谁?
参考: http://www.fromdual.ch/online-ddl_vs_pt-online-schema-change 在MySQL 5.6版本以前,最昂贵的数据库操作之一就是执行数据定义语 ...
- PJzhang:子域名爆破工具wydomain(猪猪侠)
猫宁!!! 参考链接:https://www.secpulse.com/archives/53182.html https://www.jianshu.com/p/65c85f4b7698 http: ...
- SpringMVC之一个简单的例子
一.一个简单的例子 二.web.xml文件配置 三.spring-mvc.xml文件(等同于struts2的struts文件) 四.login.jsp(登录页面) 五.登录成功的页面(success. ...
- JSP 不同版本(转)
转自 http://blog.csdn.net/sunnyyoona/article/details/51076823
- 基于.NetCore2.1。服务类库采用.Net Standard2.0,兼容.net 4.6.1消息推送服务
基于.NetCore2.1.服务类库采用.Net Standard2.0,兼容.net 4.6.1消息推送服务 https://www.cnblogs.com/ibeisha/p/weixinServ ...
- Codeforces Round #375 (Div. 2) D. Lakes in Berland 并查集
http://codeforces.com/contest/723/problem/D 这题是只能把小河填了,题目那里有写,其实如果读懂题这题是挺简单的,预处理出每一块的大小,排好序,从小到大填就行了 ...
- JAVA基础之File类
个人理解: File是个文件类,可以用其增加.删除.查找某种类型的文件或者文件夹,同时根据其成员变量的特点可以综合利用,避免出现跨系统的时候出现错误,并且查找时最好输入绝对路径,以免出现不存在的文件. ...
- 死磕 java并发包之LongAdder源码分析
问题 (1)java8中为什么要新增LongAdder? (2)LongAdder的实现方式? (3)LongAdder与AtomicLong的对比? 简介 LongAdder是java8中新增的原子 ...
- js基础的自定义属性练习
js基础的自定义属性练习: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type ...