zoukankan      html  css  js  c++  java
  • Java反射机制小例子

    package com.wjy.main;
    
    import java.io.Console;
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Method;
    
    import com.wjy.reflect.Student;
    
    public class TestMain {
        public static void main(String args[]){
            try{
            Class<?> cls=Class.forName("com.wjy.reflect.Student");
            //Class cls=Class.forName("com.wjy.reflect.Student");
            //Class cls=Student.class;
            //Class cls=new Student().getClass();
            /*上四句是等价的,但是最好使用第一种方法。
             * 
             */
            
            
            Constructor<?> cons[] = cls.getConstructors();
    //        System.out.println(cons[0]);
            
    //        Method method=cls.getDeclaredMethod("hi", new Class[]{int.class,String.class});
    //        method.invoke(cls.newInstance(),20,"shb");
            
    //        Student student=null;
    //        student=(Student)cls.newInstance();
    //        student.hi(66, "shirly");
            
            Student student=null;
            student=(Student)cons[0].newInstance();
            student.hi(88, "shirly");
            /**
             * 以上为三种方法,被注释的是前两种种方法。效果是等价的。
             */
            
            }catch(Exception e){
                e.printStackTrace();
            }
            
    //        Student student=new Student();
    //        System.out.println(student.getClass().getName());
        }
    }

    其中Student类为:

    package com.wjy.reflect;
    
    public class Student {
        private int age;
        private String name;
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public void hi(int age,String name){
            System.out.println("大家好,我叫"+name+",今年"+age+"");
        }
    }
  • 相关阅读:
    matlab软件-了解
    C# 自定义异常demo
    C#二进制对象copy
    asp.net 缓存依赖demo
    权限管理细粒度问题
    三层架构中的异常处理二
    如何解决复杂问题——结构化思维方式
    入职新公司如何熟悉项目
    专业工具使用与复杂大型项目设计管理
    十分钟学会 tmux
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/javafanshe.html
Copyright © 2011-2022 走看看