`
annan211
  • 浏览: 460955 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 反射 构造器私有化创建对象

 
阅读更多
  构造器非私有化时
package reflect;

import java.lang.reflect.Constructor;

public class Test {
	public static void main(String[] args) throws Exception, NoSuchMethodException {
		Class clas = Class.forName("reflect.Single");
		System.out.println(clas.newInstance());	}
}


class Single{
	public  String name = "fuck";
	
	public String get(){
		return this.name;
	}
}



  构造器私有化时
package reflect;

import java.lang.reflect.Constructor;

public class Test {
	public static void main(String[] args) throws Exception, NoSuchMethodException {
                  Class clas = Class.forName("reflect.Single");
		Constructor c0 = clas.getDeclaredConstructor();
		c0.setAccessible(true);
		Single sin = (Single)c0.newInstance();
		System.out.println(sin);
                  	}
}


class Single{
	public  String name = "fuck";
	private Single(){
	}
	public String get(){
		return this.name;
	}
}
分享到:
评论

相关推荐

    Java反射机制,通过对象访问调用类的私有成员或方法

    这一机制的核心在于,Java程序可以获取到关于任何类的内部信息,包括类名、属性、方法、构造器等,并能在运行时创建和调用对象。这种能力使得Java具有了很高的灵活性和可扩展性,尤其是在处理动态加载类、框架设计...

    java反射,获取所有属性、方法以及List集合类

    // 创建对象,如果类有无参构造器 Method getListMethod = clazz.getMethod("getListMethod"); // 假设有个返回List的方法 List<?> list = (List) getListMethod.invoke(obj); // 遍历并打印List元素 for ...

    JAVA反射机制的入门代码

    这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用私有方法以及访问未导出的类等方面显得尤为有用。以下是对"JAVA反射机制的入门代码"的详细解释。 首先,我们要理解反射的基本概念...

    java反射源代码

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有高度的灵活性,尤其在处理框架、插件系统以及元数据驱动...

    java 反射实例,大量注释,简单易懂

    Java反射是Java编程语言中的一个重要特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够在运行时创建和访问这些类的对象。在Java中,反射提供了对类对象的元数据(metadata)的访问,使得我们可以...

    JAVA 反射机制应用

    - 对象实例化:通过Class对象的newInstance()方法或Constructor对象的newInstance()方法创建对象。 - 访问类成员:获取Field、Method和Constructor对象,进而访问类的字段、调用方法或构造函数。 2. **Field类** ...

    java 反射的使用

    - `newInstance()`: 调用无参构造器创建对象,如果类没有无参构造器,会抛出异常。 - `Constructor<?> getDeclaredConstructor(Class<?>... parameterTypes)`: 获取指定参数类型的构造器,然后通过`newInstance...

    反射创建对象

    本文将深入探讨如何使用反射创建对象,并在反射过程中进行赋值。 首先,我们需要理解Java中的`Class`对象。每个类在运行时都有一个与之关联的`Class`对象,它包含了该类的所有元数据。我们可以通过以下三种方式获取...

    JAVA反射简单例子

    反射机制可以通过`newInstance()`方法创建对象,但前提是有默认构造器。如果需要调用有参数的构造器,可以使用`Constructor`对象的`newInstance()`方法。 5. **调用方法** - `getMethod(String name, Class<?>......

    JAVA 反射详解PPT

    通过反射,我们可以动态地创建对象、访问和修改字段、调用方法,甚至执行私有方法和访问包内可见的元素。这种能力使得Java在处理元数据、插件系统、序列化、单元测试、动态代理等方面具有强大的灵活性。 反射机制的...

    Java反射机制经典案例

    1. 动态加载类和实例化对象:在不确定具体类名的情况下,反射机制可以用来加载和创建对象,比如在插件系统或者配置文件驱动的应用中。 2. 调用私有方法和访问私有字段:通过反射,我们可以绕过访问权限控制,调用...

    Java 反射详解

    2. 创建对象:`newInstance(Object... initargs)`根据构造器创建新的对象实例,参数应与构造器的参数类型匹配。 五、泛型与反射 Java反射不直接支持泛型信息,因为泛型在编译后会被擦除。然而,反射可以获取到未...

    Java反射机制的详细讲解及实例,有助于java深度开发

    1. 创建对象:通过`Class.newInstance()`创建默认构造器的对象,或`Constructor.newInstance()`创建指定构造器的对象。 ```java Class<?> clazz = Class.forName("com.example.MyClass"); MyClass obj = (MyClass) ...

    java反射实例代码

    例如,`getConstructors()`返回类的所有公共构造器,`getDeclaredConstructors()`则返回包括私有构造器在内的所有构造器。`getMethods()`和`getDeclaredMethods()`分别对应获取公共方法和所有方法,`getFields()`和`...

    最全面的java反射总结

    - `newInstance()`:调用无参构造器创建对象,类必须有默认构造器。 - `Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)`:获取指定参数类型的构造器,然后调用`newInstance(Object... initargs...

    java反射机制文档及代码

    这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用方法以及访问私有成员等方面。在本资料"java反射机制文档及代码"中,详细介绍了Java反射的基础知识和常见应用。 首先,反射的核心...

    java反射.pdf

    - 如果类的构造器不是默认的无参构造器,可以通过`getConstructor()`和`newInstance()`方法传递参数创建实例。 ```java Class<?> clazz = Class.forName("com.example.MyClass"); Object obj = clazz.new...

    java反射经典实例

    在本“Java反射经典实例”中,我们将深入探讨这个主题,了解如何利用反射来访问和修改私有属性以及调用私有方法。 1. **反射的概念与用途** - 反射机制是在运行时分析类的能力,它允许我们获取类的信息(如类名、...

    java反射机制PPT

    4. `Constructor`类:代表类的构造器,用于在运行时创建对象,如`getConstructor()`、`getDeclaredConstructor()`等。 5. `Array`类:提供了一些静态方法,用于动态创建数组以及访问和修改数组元素。 在实际开发中...

Global site tag (gtag.js) - Google Analytics