JavaSE8基础 Class invoke 使用有参数有返回值的非静态函数
2017-10-08 16:32
363 查看
礼悟:
公恒学思合行悟,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
虚怀若谷良心主,愿行无悔给最苦。读书锻炼养身心,诚劝且行且珍惜。
被解析类的代码:
演示类:
结果:
Java优秀,值得学习。
学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
公恒学思合行悟,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
虚怀若谷良心主,愿行无悔给最苦。读书锻炼养身心,诚劝且行且珍惜。
os :windows7 x64
jdk:jdk-8u131-windows-x64
ide:Eclipse Oxygen Release (4.7.0)
jdk:jdk-8u131-windows-x64
ide:Eclipse Oxygen Release (4.7.0)
被解析类的代码:
package blog.jizuiku4; /** * * * @author jizuiku * @version V17.10.02 */ public class Person { // 成员变量 public int age; private String password; protected String name; String content; public static int ageStatic=13; private static String passwordStatic="hello world"; protected static String nameStatic; static int scoreStatic; // 构造方法 public Person(int age) {System.out.println("public GZ:int");} public Person(int age,int score) {System.out.println("public GZ:int,int");} private Person() {System.out.println("private GZ:");} protected Person(String content) {this.content=content;System.out.println("protected GZ:String");} Person(int age,String name){this.age=age;this.name=name;System.out.println("default GZ:int,String");} // 成员方法 public void sayHello(String name) {} private int sayHello() {return 1;} protected String sayHello(int age) {return "";} Integer sayHello(int age,String name) {System.out.println("sayHello(int,String)"); return 1;} public static void sayHelloStatic(String name) {} private static int sayHelloStatic() {return 1;} protected static String sayHelloStatic(int age) {return "";} static void sayHelloStatic(int age,String name) {} @Override public String toString() { return "Person [age=" + age + ", password=" + password + ", name=" + name + ", content=" + content + "]"; } }
演示类:
package blog.jizuiku4; import java.lang.reflect.Constructor; import java.lang.reflect.Method; /** * Class invoke 有参数 有返回值 普通方法(非静态) * * @author jizuiku * @version V17.10.03 */ public class ClassUseNormalFunDemo { public static void main(String[] args) throws Exception { String className = "blog.jizuiku4.Person"; Class c = Class.forName(className); System.out.println("Person类中的构造方法有:"); Constructor[] cons = c.getDeclaredConstructors(); for (Constructor constructor : cons) { System.out.println(constructor); } System.out.println(); // 要使用的构造函数 // protected blog.jizuiku3.Person(java.lang.String) Constructor con = c.getDeclaredConstructor(String.class); // 暴力访问 con.setAccessible(true); Object obj = con.newInstance("javaer"); System.out.println(obj.toString()); System.out.println(); System.out.println("Person类中的成员方法有:"); Method[] ms = c.getDeclaredMethods(); for (Method method : ms) { System.out.println(method); } System.out.println(); // 要使用的函数 // void blog.jizuiku3.Person.sayHello(int,java.lang.String) Method m = c.getDeclaredMethod("sayHello", int.class, String.class); // 暴力访问 m.setAccessible(true); // 返回值 result // 相当于 obj.m(1,"hello") Object result = m.invoke(obj, 1,"hello"); System.out.println(result); } }
结果:
Java优秀,值得学习。
学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
相关文章推荐
- 七.OC基础加强--1.内存管理 2.野指针,内存泄露 3.set方法的内存管理 4.@property参数 5.@class和循环retain的使用 6.NSString的内存管理
- Java基础---Java中无参数无返回值方法使用(三十六)
- Java基础---Java中无参数带返回值方法的使用(三十七)
- JavaSE8基础 Class newInstance 使用指定的构造函数生成具体的对象
- Java基础---Java中带参数无返回值方法的使用(三十九)
- Java基础---Java中无参数无返回值方法使用(三十六)
- JavaSE8基础 Class 获得私有构造方法并使用
- Java基础---Java中无参数带返回值方法的使用(三十七)
- Java基础---Java中带参数返回值方法的使用(四十)
- Java基础---Java中带参数返回值方法的使用(四十)
- Java基础---Java中带参数无返回值方法的使用(三十九)
- 使用ExternalInterface调用Flex方法-无参数、无返回值!
- 使用ExternalInterface调用JS方法-传参数、有返回值!
- OC第五课(@class与#import)property参数使用
- 使用ExternalInterface调用Flex方法-传参数、有返回值!
- 使用eclipse JDT compile class,解决 无法确定 X 的类型参数;对于上限为 X,java.lang.Object 的类型变量 X,不存在唯一最大实例
- 使用eclipse JDT compile class,解决 无法确定 X 的类型参数;对于上限为 X,java.lang.Object 的类型变量 X,不存在唯一最大实例
- 使用eclipse JDT compile class,解决 无法确定 X 的类型参数;对于上限为 X,java.lang.Object 的类型变量 X,不存在唯一最大实例
- 使用 SQL 语句创建 School 数据库(包括参数)、 TblClass 表、 TblStudent 表。
- c++构造函数不能使用本class对象作为参数