zoukankan      html  css  js  c++  java
  • Java 反射实例

    package com.xiawei.reflect.reflectservice;

    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    /**
    * 反射生成对象(有参数的)
    * @author Administrator
    *
    */
    public class ReflectServiceClassImpl1 {

    private String name;

    public ReflectServiceClassImpl1(String name) {
    this.name = name;
    }

    public void say(String name) {
    System.out.println("你好啊,"+name);
    }

    public ReflectServiceClassImpl1 getInstance(){
    ReflectServiceClassImpl1 object = null;
    try {

    object = (ReflectServiceClassImpl1) Class.forName("com.xiawei.reflect.reflectservice.ReflectServiceClassImpl").
    getConstructor(String.class).newInstance("张三");

    } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
    | NoSuchMethodException | SecurityException | ClassNotFoundException e) {
    e.printStackTrace();
    }
    return object;

    }

    /**
    * 反射方法
    * @return
    */
    public Object reflectMethod(){
    Object returnObj = null;
    ReflectServiceClassImpl target = new ReflectServiceClassImpl();

    Method method = null;
    try {

    method = ReflectServiceClassImpl.class.getMethod("say", String.class);
    returnObj = method.invoke(target, "张三");

    } catch (NoSuchMethodException | SecurityException
    | IllegalAccessException | IllegalArgumentException
    | InvocationTargetException e) {
    e.printStackTrace();
    }

    return returnObj;

    }

    /**
    * 反射生成对象,和反射调度方法
    * @return
    */
    public Object reflect(){
    ReflectServiceClassImpl object = null;
    try {
    //通过反射获得对象
    object = (ReflectServiceClassImpl)
    Class.forName("com.xiawei.reflect.reflectservice.ReflectServiceClassImpl").newInstance();
    //通过对象反射获得方法
    Method method = object.getClass().getMethod("say", String.class);
    //执行方法
    method.invoke(object, "张三");

    } catch (NoSuchMethodException | SecurityException
    | InstantiationException | IllegalAccessException
    | ClassNotFoundException | IllegalArgumentException
    | InvocationTargetException e) {

    e.printStackTrace();
    }
    return object;

    }

    }

  • 相关阅读:
    用Actionscript3.0编写的伪3D文字旋转
    iis权限设置
    SQL 不能通过IP正常连接终极解决方案
    创建一个非常简单的NHibernate的应用
    解决“System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本”
    详细讲解提高数据库查询效率的实用方法、外键关于性能
    解决ERRORORA12514:TNS:监听程序当前无法识别连接描述符中请求的服务
    session丢失问题
    Jquery AJAX WebService处理方式 demo
    DIV模拟弹出窗口(支持拖动)
  • 原文地址:https://www.cnblogs.com/xiaweicn/p/8666568.html
Copyright © 2011-2022 走看看