zoukankan      html  css  js  c++  java
  • 反射常见方法

    package Demo1; 
    
    import java.io.InputStream;
    import java.util.List;
    //被反射类
    public class person { 
        public String name="li liangliang";
        public person()
        {
            System.out.print("my name is person");
        }
        public person(String name,int age)
        {
            System.out.println("name="+ name+"   age="+age);
        }
        private person(String name)
        {
            System.out.print(name);
        }
        public void aal()
        {
            System.out.println("aal");
        }
        public void aal(String name,int password)
        {
            System.out.print(name+":"+"password"+password);
        }
        public Class[] aal(String name,int[] password)
        {
            return new Class[]{String.class};
        }
        private void aal(InputStream in)
        {
            System.out.print(in);
        }
        public static void aal(int num)
        {
            System.out.println(num);
        }
    }

    反射

    package Demo1;
    
    import static org.junit.Assert.*;
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Method;
    
    import org.junit.Test;
    
    public class Demo1TestTest {
        //反射public void aal()
        @Test
        public void Test1()throws Exception{
            person p=new person();
            Class clazz=Class.forName("Demo1.person");
            Method method=clazz.getMethod("aal", null);
            method.invoke(p,null);
        }
        //反射public void aal(String name,int password)
        public void Test2()throws Exception{
            person p=new person();
            Class clazz=Class.forName("Demo1.person");
            Method method=clazz.getMethod("aal",String.class,int.class);
            method.invoke(p,"liang",22);
        }
        public void Test3()throws Exception{
            person p=new person();
            Class clazz=Class.forName("Demo1.person");
            Method method=clazz.getMethod("aal",String.class,int[].class);
            Class cs[]=(Class[]) method.invoke(p,"liang",new int[]{1,2,3,4});
            System.out.print(cs[0]);
        }
    }
    package Demo1;
    
    import static org.junit.Assert.*;
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.InvocationTargetException;
    import java.util.ArrayList;
    
    import org.junit.Test;
    
    import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;
    
    public class Demo2Test {
    
        @Test
        public void test() throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
            Class clazz=Class.forName("Demo1.person");
            Constructor c=clazz.getConstructor(null);
            person p=(person)c.newInstance(null);
             System.out.print(p.name);
        }
        @Test
        public void Test1()throws Exception{
            Class clazz=Class.forName("Demo1.person");
            Constructor c=clazz.getConstructor(String.class);
            person p=(person) c.newInstance("xxxxx");
        }
        @Test
        public void Test()throws Exception{
            Class clazz=Class.forName("Demo1.person");
            Constructor c=clazz.getConstructor(String.class,int.class);
            person p=(person) c.newInstance("int",11);
        }
        @Test
        public void Test4()throws Exception{
            Class clazz=Class.forName("Demo1.person");
            Constructor c=clazz.getDeclaredConstructor(String.class);
            c.setAccessible(true);
            person p=(person)c.newInstance("abc");
        
        }
        @Test
        public void Test5()throws Exception{
            Class clazz=Class.forName("Demo1.person");
            person p=(person)clazz.newInstance();
        
        }
    }
  • 相关阅读:
    2019前端面试系列——CSS面试题
    面试题——数组转树结构
    前端安全
    webpack入门——构建简易版vue-cli
    [] == ![],走进==隐式转换的世界
    Vue图片懒加载插件
    JS常用时间处理方法
    Vue中实现token验证
    VSCode基本配置
    打乱数组——shuffle
  • 原文地址:https://www.cnblogs.com/kedoudejingshen/p/2731351.html
Copyright © 2011-2022 走看看