reflaction(有参数)

import java.lang.reflect.*;
import java.awt.*;

class SampleNoArg
{
 @SuppressWarnings("unchecked")
 public static void main(String[] args)
 {
//  Rectangle r = (Rectangle)createObject("java.awt.Rectangle");
//  System.out.println(r.toString());
  

  @SuppressWarnings("unused")
  Rectangle rectangle;
  Class rectangleDefinition;
  Class[] intArgsClass = new Class[] {int.class, int.class};

  Integer height = new Integer(12);
  Integer width = new Integer(34);
  Object[] intArgs = new Object[] {height, width};
  Constructor intArgsConstructor;
  try
  {
  rectangleDefinition = Class.forName("java.awt.Rectangle");
  intArgsConstructor=rectangleDefinition.getConstructor(intArgsClass);
  rectangle = (Rectangle) createObject(intArgsConstructor, intArgs);
  }
  catch(ClassNotFoundException e){System.out.println(e);}
  catch(NoSuchMethodException e){System.out.println(e);}
 }
 @SuppressWarnings("unchecked")
 static Object createObject(String className)
 {
  Object object = null;
  try
  {
   Class classDefinition = Class.forName(className);
   object = classDefinition.newInstance();


  }
  catch(InstantiationException e){System.out.println(e);}
  catch(IllegalAccessException e) { System.out.println(e); }
  catch(ClassNotFoundException e){ System.out.println(e); }
  return object;
 }
 
 
 @SuppressWarnings("unchecked")
 public static Object createObject(Constructor constructor,Object[] arguments)
 {
  System.out.println ("Constructor: " + constructor.toString());
  Object object = null;
  try
  {
   object = constructor.newInstance(arguments);
   System.out.println ("Object: " + object.toString());
   return object;
  }
  catch(InstantiationException e){ System.out.println(e); }
  catch(IllegalAccessException e){ System.out.println(e); }
  catch(IllegalArgumentException e){ System.out.println(e); }
  catch(InvocationTargetException e){ System.out.println(e); }
  return object;
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值