反射中 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():返回该对象的哈希码值,这个值和地址值有关,但是不是实际地址值(哈希码值是根据实际地址值转化过来的 ...
随机推荐
- appium服务——封装生成可用端口
一.判断端口是否可用 1.在windows中判断端口是否可用,使用dos命令"netstat -ano| findstr 8080".运行结果有如下两种 如果没有被占用,就是结果为 ...
- PJzhang:kali linux安装网易云音乐、Visual Studio Code、skype
猫宁!!! 参考链接:https://blog.csdn.net/cloudatlasm/article/details/79183583 https://code.visualstudio.com/ ...
- jsp学习与提高(二)——JSP 隐式对象、表单处理及过滤器
1.JSP 隐式对象 JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐式对象也被称为预定义变量. JSP所支持的九大隐式对象: 对象 描述 req ...
- 解决phpwind 9 转换到 discuz x 3.1的头像仍然不显示问题
phpwind 9 转换到 discuz x 3.1后,按照discuz转换程序的步骤做,头像仍然不显示,后来登录后重新上传头像发现,是文件名的原因,如下操作改名即可(还好我的论坛会员不多,不然手改累 ...
- CCPC吉林站
A.The Fool #include <bits/stdc++.h> using namespace std; inline int read() { ,f=;char ch=getch ...
- 字符串split函数
https://www.cnblogs.com/hjhsysu/p/5700347.html 函数:split() Python中有split()和os.path.split()两个函数,具体作用如下 ...
- 13.组合查询--SQL
利用UNION操作符将多条SELECT语句组合成一个结果集. 主要有两种情况需要使用组合查询: 在一个查询中从不同的表返回结构数据: 对一个表执行多个查询,按一个查询返回数据. UNION规则 UNI ...
- MySQL索引原理与慢查询
=========索引原理与慢查询======= 阅读目录 - 一.介绍 - 二.索引的原理 - 三.索引的数据结构 - 四.聚集索引与辅助索引 - 五.MyS ...
- oracle备份imp命令大全
oracle中imp命令详细解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...
- Java中的Validated验证
注意点:在使用@NotBlank时,必须与@Valid配着使用,不然不起作用(出现了很奇怪的现象,我第一次试的时候确实有这情况,但是第二次的时候这情况没了,所以这个说不准) @NotBlank 用在S ...