精华内容
下载资源
问答
  • JAVA反射调用无参构造、有构造、普通方法、成员操作 Person类 package demo; public class Person { private String id; private String name; public Person(){ System.out.println("我是无参构造"); ...

    JAVA反射调用无参构造、有参构造、普通方法、成员操作

    Person类

    package demo;
    
    public class Person {
    
    	
    	private String id;
    	private String name;
    
    	public Person(){
    		System.out.println("我是无参构造");
    	}
    	
    	private Person(String id){
    		System.out.println("我是有参私有构造,传入的值为:"+id);
    	}
    	
    	public Person(String id,String name){
    		System.out.println("我是有参公有构造,传入的值为:"+id+","+name);
    	}
    	
    	
    	public void create(String name){
    		System.out.println("我是create方法,参数为:"+name);
    	}
    	
    	
    	
    	
    }
    
    
    • 测试方法
    package demo;
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    public class Hello {
    	public static void main(String[] args) throws Exception {
    //		String fieldName = "name" ;  //要操作的成员
    		Class <?> cls = Class.forName("demo.Person") ;
    		Object obj = cls.newInstance(); //调用无参构造
    		
    		
    		
    		//调用类成员
    		Field fieldName = cls.getDeclaredField("name") ;
    		fieldName.setAccessible(true);  //允许访问私有
    		fieldName.set(obj, "张三") ;
    		System.out.println(fieldName.get(obj));
    		
    		//调用公有有参构造
    		Constructor<?> csr = cls.getConstructor(String.class ,String.class) ;  //调用有参构造
    		Object obj1 = csr.newInstance("123","张三丰") ;
    		
    		//调用有参构造,私有的有参构造 需要用 getDeclaredConstructor方法
    		Constructor<?> csr1 = cls.getDeclaredConstructor(String.class) ;  //调用私有构造
    		csr1.setAccessible(true);
    		Object obj2 = csr1.newInstance("123321") ;
    		
    		// 第一个参数是方法名称,第二个参数是参数的类型,如果有多个参数,依次填写
    		Method mth = cls.getMethod("create", String.class);
    		// 调用方法
    		mth.invoke(obj, "创造");
    		
    		//调用普通方法
    	}
    	
    }
    
    
    展开全文
  • } } class Program { static void Main(string[] args) { // 要调用的函数所在的类是 person Type tp = typeof(Person); // 方法的名字是:SayHello // GetMethod : 搜索具有指定名称的公共方法。 MethodInfo ...
    • .NET Framework : 4.7.2
    •        IDE : Visual Studio Community 2019
    •         OS : Windows 10 x64
    •     typesetting : Markdown
    •         blog : xinshaopu.blog.csdn.net

    code

    using System;
    using System.Reflection;
    
    namespace ConsoleApp
    {
        public class Person
        {
            public void SayHello()
            {
                Console.WriteLine("Hello");
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                // 要调用的函数所在的类是 person
                Type tp = typeof(Person);
    
                // 方法的名字是:SayHello
                // GetMethod : 搜索具有指定名称的公共方法。
                MethodInfo method = tp.GetMethod("SayHello");
    
                // 创造一个实例
                object obj = Activator.CreateInstance(tp);
    
                // 调用函数
                method.Invoke(obj, null);
    
                Console.ReadKey();
            }
        }
    }
    
    

    result

    Hello
    
    

    resource

    • [文档] docs.microsoft.com/zh-cn/dotnet/csharp
    • [规范] github.com/dotnet/docs/tree/master/docs/standard/design-guidelines
    • [源码] referencesource.microsoft.com
    • [平台] www.csdn.net
    • [ IDE ] visualstudio.microsoft.com/zh-hans
    • [.NET Core] dotnet.github.io


    感恩曾经帮助过 心少朴 的人。
    C#优秀,值得学习。.NET Core具有跨平台的能力,值得关注。
    Console,WinForm,WPF,ASP.NET,Azure WebJob,WCF,Unity3d,UWP可以适当地了解。
    注:此文是自学笔记所生,质量中下等,故要三思而后行。新手到此,不可照搬,应先研究其理象数,待能变通之时,自然跳出深坑。

    欢迎关注微信公众号:悟为生心

    在这里插入图片描述

    展开全文
  • /**反射调用方法 * */ public class ReflectDemo3 { public static void main(String[] args) throws Exception { Class cls = Class.forName("reflect.Person"); Object o =cls.newInstance(); Method method=...

    package reflect;

    public class Person {

    public void sayHello() {

    System.out.println("HelloJava");

    }

    public void sayName() {

    System.out.println("大家好");

    }

    public void sayAge(int age) {

    System.out.println("我的年龄是:"+age+"岁了...");

    }

    public void say(String name,int age) {

    System.out.println("我叫"+name+",我今年"+age+"岁了。");

    }

    private void domose() {

    System.out.println("我是Preson类的私有方法...");

    }

    }

    调用person类中无参方法

    package reflect;

    import java.lang.reflect.Method;

    /**

    * 通过反射机制调用某个类的某个方法

    */

    public class ReflectDemo1 {

    public static void main(String[] args) throws Exception {

    Class cls = Class.forName("reflect.Person");

    //接收的是一个Person的实例

    Object o =cls.newInstance();

    /*

    * 通过该Class实例可以获取其表示的类的相关方法

    * 获取Person的sayHello方法

    *

    */

    Method method =cls.getDeclaredMethod("sayHello", null);

    method.invoke(o, null);

    }

    }

    调用person类中有参方法

    package reflect;

    import java.lang.reflect.Method;

    /**反射调用有参方法

    *

    */

    public class ReflectDemo3 {

    public static void main(String[] args) throws Exception {

    Class cls = Class.forName("reflect.Person");

    Object o =cls.newInstance();

    Method method=cls.getDeclaredMethod("sayAge",new Class[] {int.class});

    method.invoke(o, new Object[] {20});

    Method method1=cls.getDeclaredMethod("say",new Class[] {String.class,int.class});

    method1.invoke(o,new Object[] {"zhangsan",18});

    }

    }

    调用Person类中的私有方法

    package reflect;

    import java.lang.reflect.Method;

    //反射机制调用私有方法

    public class ReflectDemo4 {

    public static void main(String[] args) throws Exception {

    Class cls = Class.forName("reflect.Person");

    Object o =cls.newInstance();

    Method method=cls.getDeclaredMethod("domose",null);

    //强制要求访问该方法 setAccessible(true);

    method.setAccessible(true);

    method.invoke(o, null);

    }

    }

    展开全文
  • //调用无参构造 //调用类成员 Field fieldName = cls.getDeclaredField("name") ; fieldName.setAccessible(true); //取消封装 fieldName.set(obj, "张三") ; System.out.println(fieldName.get(obj))...
    package com.man.test;
    
    import java.lang.reflect.Field;
    
    public class Hello {
    	public static void main(String[] args) throws Exception {
    //		String fieldName = "name" ;  //要操作的成员
    		Class <?> cls = Class.forName("com.man.demo.Person") ;
    		Object obj = cls.newInstance(); //调用无参构造
    		
    		//调用类成员
    		Field fieldName = cls.getDeclaredField("name") ;
    		fieldName.setAccessible(true);  //取消封装
    		fieldName.set(obj, "张三") ;
    		System.out.println(fieldName.get(obj));
    		
    		//调用有参构造
    //		Constructor<?> csr = cls.getConstructor(String.class ,int.class) ;  //调用有参构造
    //		Object obj = csr.newInstance("张三",22) ;
    		
    		//调用普通方法
    //		Method setMet = cls.getMethod("set"+initcap(fieldName), String.class) ;
    //		Method getMet = cls.getMethod("get"+ initcap(fieldName)) ;
    //		setMet.invoke(obj, "李四") ;
    //		System.out.println(getMet.invoke(obj));
    	}
    //	public static String initcap (String str){
    //		return str.substring(0 , 1).toUpperCase() + str.substring(1) ; //设置setter和getter成员的首字母大写
    //	}
    }

    展开全文
  • 展开全部通过e68a84e8a2ad62616964757a686964616f31333337396236Java反射调用无参数方法,这是个测试用的例子,通过反射调用对象的方法,代码如下:importjava.lang.reflect.Method;importjava.lang.reflect....
  • java反射调用方法

    2021-02-28 13:37:48
    使用参数 args 在 obj 上指派该对象...级别的反射调用:package com.dao.Text;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class TetsReflect {/*** @param args*...
  • 若一个类中未定义默认的构造方法,当通过反射的机制这个类的实例会报下面的错误:Exception in thread "main" java.lang.[b]InstantiationException做反射机制时,调用无参的构造方法:Class class1 = Class.forName...
  • JAVA通过反射调用类的私有方法 实际在JAVA11中可运行 import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.*; class Father { int father1 = 1; static int...
  • 注意:调用方法的参数 形式,源码如下: @CallerSensitive public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException { return getMethod(name,...
  • 无参构造方法,全参数构造方法 定义每个属性的setters 和getters 方法 重写 toString方法和 equals 方法(根据学号比较对象) 在测试类中利用反射完成以下操作: 实例化该类,要求调用构造方法完成实例化对象的...
  • 在使用Java反射时,总是只记着:class="java" name="code"> Class.forName(className).newInstance()?那对构造函数带参数的Class又如何反射呢?Class cls = Class.forName(className);Class[] paramTypes = { ...
  • //调用 set 方法将传入的value值保存属性中去 } catch (Exception e){ e.printStackTrace(); } } public static Object getProperty(Object obj, String propertyName){ Class clazz = obj.getClass();//获取对象的...
  • 以前写的些方法都是这样干的:Class...那样只能调用默认构造函数,也就是没有参数的,前几天要整个反射类,调用的是有构造函数,解决如下:Class cls = Class.forName(className);Class[] paramTypes = { String.c...
  • golang通过反射调用方法

    千次阅读 2018-01-11 19:41:32
    package main import ( "fmt" ... //调用无参方法 reflectInterface(testReflectParam,nil) //调用方法 reflectInterface(testReflectParam2,getValues(5,"Hello")) } //根据参数获取对应的V
  • public class 通过反射获取无参无返回值成员方法并使用 { public static void main(String[] args) throws Exception { // 获取字节码文件对象 Class c = Class.forName("cn.itcast_01.Person")
  • 下面小编就为大家带来一篇java中利用反射调用另一类的private方法的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • //使用java反射获取类的对象(调用无参构造方法创建实例对象) class B { public String name; private int age; public void say() { } public int jia(int num1, int num2) { return num1 + num2; } } ...
  • // 统一调用成员方法 public class D { // 构造函数1 public void func1() { System.out.println("this is func1"); } // 构造函数2 public void func2(Integer m) { System.out.println("this is func2:...
  • 什么是反射反射机制是在运行状态...我们开发人员在使用开发工具编写代码时,就在使用反射机制,比如我们调用一个方法时,只需要声明一个类,然后点一下就可以看到该类中所以可使用的方法,这就是反射的一个应用...
  • java反射调用某个对象的方法 // 反射调用某个对象的方法 public Object invokeMethod(Object methodObject, String methodName, Object[] args) thr ... Java 第13章 带参数的方法 带参数的方法 无参方法有那几个...
  • 本例演示了如何使用反射调用类的静态方法,封装了工具类ClsTool,统一实现静态方法的调用。使用反射,在特定场景下,能够很好的简化代码。例如mybatis
  • 测试反射调用方法 import java.lang.reflect.Method; class T{ public void me2(String s){ System.out.println("public method "); } private static void me1(String s,Integer i){ System.out.println(...
  •  .NET Framework : 4.7.2        IDE : Visual Studio Community 2019         OS : Windows 10 x64     typesetting : Markdown         blog : blog.csdn.net/...
  • 反射 method的调用 无参和多参数

    万次阅读 2016-08-25 17:17:16
    //测试无参写法 getNowClass(); } public void printDemo(int m) { System.out.println("invoke print"); } public void printDemo() { System.out.println("invoke print no paramater"); //System...
  • 通过反射获取无参构造方法并使用

    千次阅读 2016-05-09 18:53:21
    通过反射获取无参构造方法并使用
  • package cn.itcast_02; import java.lang.reflect.Constructor; ... /* * 通过反射获取构造方法并使用。 */ public class ReflectDemo { public static void main(String[] args) throws Exception
  • //使用java反射获取类的对象(调用构造方法创建实例对象) public class Test04 { public void createObj(String className) { // 通过java反射获取B类的对象 try { Class clazz = Class.forName...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,813
精华内容 23,525
关键字:

反射调用无参