利用java.lang.reflect.Constructor动态实例化对象

1 public class Student {
 2     private String name;
 3     private Integer age;
 4     private Student(String name,Integer age){
 5         this.name=name;
 6         this.age=age;
 7     }
 8     public String getName() {
 9         return name;
10     }
11     public void setName(String name) {
12         this.name = name;
13     }
14     public Integer getAge() {
15         return age;
16     }
17     public void setAge(Integer age) {
18         this.age = age;
19     }
20 }

1 package com.mingrisoft;
 2 
 3 import java.lang.reflect.Constructor;
 4 
 5 public class NewClassTest {
 6     public static void main(String[] args) {
 7         try {
 8             //获得File类的Constructor对象
 9             Constructor<Student> constructor = Student.class.getDeclaredConstructor(new Class[]{String.class,Integer.class});
10             Student t = constructor.newInstance("libing",30);
11             System.out.println(t.getName());
12         } catch (Exception e) {
13             e.printStackTrace();
14         }
15     }
16 }

时间: 2024-10-24 14:02:56

利用java.lang.reflect.Constructor动态实例化对象的相关文章

java.lang.reflect.Constructor

java.lang.reflect.Constructor 一.Constructor类是什么 Constructor是一个类,位于java.lang.reflect包下. 在Java反射中 Constructor类描述的是 类的构造方法信息,通俗来讲 有一个类如下: 1 package com.testReflect; 2 public class ConstructorDemo { 3 private int num; 4 private String str; 5 6 public Con

自己写一个java.lang.reflect.Proxy代理的实现

前言 Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的.本文就自己写一个Proxy类出来,功能和java.lang.reflect.Proxy一样,传入接口.代理内容,生成代理. 抛砖引玉吧,个人觉得自己写一些JDK里面的那些类挺好的,写一遍和看一遍真的是两个不同的概念,写一遍既加深了对于这些类的理解.提升了自己的写代码水平,也可以在写完之后对比一下自己的实现有哪些写得不好

JAVA中反射机制六(java.lang.reflect包)

一.简介 java.lang.reflect包提供了用于获取类和对象的反射信息的类和接口.反射API允许对程序访问有关加载类的字段,方法和构造函数的信息进行编程访问.它允许在安全限制内使用反射的字段,方法和构造函数对其底层对等进行操作. 二.java.lang.reflect AccessibleObject类 java.lang.reflect.AccessibleObject类是Field,Method和Constructor类对象的基类. 它提供了将反射对象标记为在使用它时抑制默认Java

java 反射(reflect)总结,附对象打印工具类

java反射机制认知 java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取类的信息以及动态调用对象的方法的功能称为java语言的反射机制Reflection. 这就说明:Java程序可以加载一个编译期间完全未知的class,获悉其完整构造,并生成其对象实体.或对其fields设值.或唤起其methods.虽然java并不是动态语言. 如何达到上述目的,是本文探讨的内容.本文将介绍Reflection A

java.lang.reflect(一)

要梳理这个包,就必须要整理一下反射了.为了方便描述,我们假定已经写好了一个普通类,com. 反射API 接口 AnnotatedElement GenericArrayType GenericDeclaration InvocationHandler Member ParameterizedType Type TypeVariable WildcardType 类 AccessibleObject (代表访问检查的能力) Array (代表数组) Constructor (代表构造方法) Fie

Java反射API研究(2)——java.lang.reflect详细内容与关系

对于最新的java1.8而言,reflect中接口的结构是这样的: java.lang.reflect.AnnotatedElement java.lang.reflect.AnnotatedType java.lang.reflect.AnnotatedArrayType java.lang.reflect.AnnotatedParameterizedType java.lang.reflect.AnnotatedTypeVariable java.lang.reflect.Annotated

利用泛型抽取Dao层,加事务注解问题(java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType)

想利用泛型抽取BaseDao层,简化操作时出现问题: @Transactional这个注解是可以继承的,于是就想写在抽取的BaseDao层上,让实现的类可以不用写@Transactional,就可开启事务. 问题描述: 由于偷懒,没给BaseDao抽接口,代码如下: package com.liang.ssh2.base; import java.lang.reflect.ParameterizedType; import java.util.Collections; import java.u

Core Java:使用java.lang.reflect实现JDK动态代理的小DEMO

代理模式在Java的体系结构中具有非常重要的地位,包括Spring的整个庞大的IOC体系都是建立在代理模式之上,而AOP也是在代理模式的基础上发展起来,增加了触发动作行为的时机.因此掌握代理模式是非常必要的技能.    下面通过一个简单的DEMO,来探究一下java.lang.reflect是如何实现代理模式的,重点在main方法上,我们明明为flyImpl实现类的wing(String)赋值为null,但是最终的输出结果中,却发现这个flyImpl对象的fly域变成了"A injected s

java.lang.reflect.Method.getAnnotation()方法示例【通过反射获取到方法对象再获取方法对象上的注解信息】

转: java.lang.reflect.Method.getAnnotation()方法示例 java.lang.reflect.Method.getAnnotation(Class <T> annotationClass)方法如果存在这样的注释,则返回指定类型的元素的注释,否则为null. 声明 以下是java.lang.reflect.Method.getAnnotation(Class <T> annotationClass)方法的声明. public <T exte