`
bo_hai
  • 浏览: 567392 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

拥有私有构造器的类,在类外面创建对象的方法(AccessibleObject)

阅读更多

一、有下面的类信息:

public class TestAccessibleObject {
	
	private String name;
	
	private TestAccessibleObject() {
		
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
}

 这个类是私有构造器,除了在本类中创建这个类的对象外,没有其它方式可以创建这个类的对象了。下面的程序是在这个类的外部创建这个类的对象:

public class Test {

	public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
		 Constructor[] cs = TestAccessibleObject.class.getDeclaredConstructors();
		  AccessibleObject.setAccessible(cs, true);
		  System.out.println(cs.length);
		  for ( Constructor c : cs) {
		   System.out.println(c.isAccessible());
		   TestAccessibleObject t = (TestAccessibleObject)c.newInstance();
		   t.setName("hongboliu");
		   System.out.println(t.getName());
		  }
	}
}

  

分享到:
评论

相关推荐

    Java反射类中属性方法

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java程序具有了更高的灵活性和可扩展性。在Java中,反射主要通过...

    java反射机制

    Java的反射机制是Java语言的一项强大特性,它允许我们在运行时检查类的内部结构,创建和操作类的对象,以及调用私有方法和修改私有属性。这一机制使得Java能够具备动态编程的能力,增强了代码的灵活性和可扩展性。 ...

    649.647.JAVA基础教程_反射-提供结构丰富Person类(649).rar

    2. **获取构造器**:`Class`对象提供了访问其构造器的方法,如`Constructor[] constructors = personClass.getConstructors()`,这将返回一个`Constructor`数组,包含了类的所有公共构造器。我们还可以使用`...

    Manning - java reflection in action(2005)

    - 构造器反射:`Constructor<T>`类用于表示类的构造器,可以用来创建对象实例。 - 方法反射:`Method`类代表类的方法,可以动态调用方法。 3. **字段的反射** - 获取字段信息:`Field`类表示类的字段,可以获取...

    JAVA反射机制原理及代码

    2. `Constructor`:表示类的构造器,用于创建类的新实例。 3. `Field`:表示类的字段,提供了访问和修改字段值的功能。 4. `Method`:表示类的方法,支持调用方法操作。 5. `AccessibleObject`:`Field`、`...

    java反射的简单代码例子

    在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建动态代理以及处理泛型等。下面将详细介绍Java反射的基本概念和如何通过代码实现。 1. **Java反射基础** - **Class对象**:每个...

    Java反射机制.工作原理

    1. 类(Class):在Java中,每个类都由一个对应的Class对象表示,这个对象包含了该类的所有信息,如类名、包名、父类、接口、构造器、方法和字段等。`Class.forName()` 方法可以用来获取指定类的Class对象。 2. ...

    Java反射机制课件ppt

    反射机制允许Java程序在运行时检查类的结构,包括类的属性(fields)、方法(methods)、构造器(constructors)以及类的元数据(如修饰符、父类、接口等)。通过反射,开发者可以获取到一个类的Class对象,它是对...

    第6讲 动态代理是基于什么原理1

    通过反射,我们可以获取到类的结构信息,如类名、字段、方法、构造器等,并能够实例化对象、调用方法、访问和修改私有成员。反射机制的核心类包括: - `Class`:代表Java类的元数据,可以通过类名或对象实例获取。 ...

    java反射示例代码

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时检查类、接口、字段和方法的信息,并能动态地创建对象和调用方法。在Java中,反射主要用于以下场景:代码生成、元数据访问、插件系统、框架设计等。...

    java 的反射机制总结

    Java的反射机制是Java语言的一项强大功能,它允许程序在运行时检查类、接口、字段和方法的信息,并能动态地创建对象和调用方法。在JavaBean中,反射机制常用于自动化属性的设置和获取,使得JavaBean可以方便地被其他...

    java反射实例

    你可以通过`Class.forName()`方法根据类名获取`Class`对象,然后进一步获取类的构造器、方法、字段等信息。例如,`Class.getMethod()`和`Class.getField()`可以分别用来获取指定的公共方法和字段,而`Class....

    最简单java 反射原理示例

    `(要求类有无参构造器) 3. 获取和调用方法:`Method method = clazz.getMethod("methodName", 参数类型...);`,然后`method.invoke(obj, 参数...);` 4. 访问字段:`Field field = clazz.getField("fieldName");`,...

    北京加中科技技术有限公司Java笔试面试题

    - **构造器**:理解构造函数的作用,以及默认构造器和自定义构造器的使用。 - **访问修饰符**:public、private、protected和默认访问级别之间的区别。 3. **异常处理** - **异常的分类**:分为检查型异常(如...

    简单总结Java的反射机制的运用

    你可以使用 `Class` 对象的 `getConstructors()` 和 `getDeclaredConstructors()` 方法获取构造器,后者还包括私有构造器。 3. `Method` 类:表示类的方法。`getMethods()` 和 `getDeclaredMethods()` 分别用于获取...

    老生常谈Java反射机制(必看篇)

    `Class`对象提供了访问类的各种信息,如构造器、方法、字段等。 1. **构造器访问**: - `getConstructor(Class[] params)`:获取具有特定参数类型的公共构造器。 - `getConstructors()`:获取所有公共构造器。 -...

    src-tools1.8源码

    通过反射,开发者可以在运行时动态地获取类的信息(如类名、方法名、参数类型等),创建并调用对象的方法,甚至改变私有成员变量的值。这在处理元数据、动态代理、插件系统以及测试等领域都有广泛应用。 抽象语法树...

    eclipse安卓开发必备工具

    我一直以为类的私有构造函数、属性、方法除了类自身其他类是无法访问的,前几天正好学习Spring框架,在学习Spring框架基础 Bean包时,写了一个简单的例子,类似如下: package study.spring.bean; public class ...

    java-reflection-playground:https

    通过`Class`对象的`getConstructors()`方法可以获取类的所有公共构造器,`getDeclaredConstructors()`则能获取所有构造器,包括私有的。 3. **Method类**:`Method`对象代表类的方法。我们可以使用`Class`对象的`...

Global site tag (gtag.js) - Google Analytics