• 反射常见方法


    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();
        
        }
    }
  • 相关阅读:
    mybatis2入门程序
    mybatis1
    mybeats与jdbc问题分析
    mysqljdbc简单连接释放
    jdbc问题记录
    section,article,div
    HB调试前端开发移动
    HTML,XML,XHTML
    访问地图
    OAuth
  • 原文地址:https://www.cnblogs.com/kedoudejingshen/p/2731351.html
Copyright © 2020-2023  润新知