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;

    }

    }

  • 相关阅读:
    20110603 本日跌的股票之后一段时间轻易不要碰
    一日三省
    火电排污新标准年内出台 撬动千亿脱硝市场
    20082011大股东增持专题
    收评:5月24日资金流向(摘自益盟)
    2011年中期业绩预增前20家公司
    2011大股东十大增持概念股全景图
    放不下期货
    从众是通向地狱最廉价的门票
    在ASP.NET中获取Get方式和Post方式提交的数据
  • 原文地址:https://www.cnblogs.com/xiaweicn/p/8666568.html
Copyright © 2011-2022 走看看