http://stackoverflow.com/questions/1268817/create-new-class-from-a-variable-in-java
Consider I have a class:
com.crossedstreams.thingy.Foo
com.crossedstreams.thingy.Foo
Which has a constructor with signature:
Foo(String a, String b);
I would instantiate the class based on these two facts as follows:
// Load the Class. Must use fully qualified name here!
Class clazz = Class.forName("com.crossedstreams.thingy.Foo");
// I need an array as follows to describe the signature
Class[] parameters = new Class[] {String.class, String.class};
// Now I can get a reference to the right constructor
Constructor constructor = clazz.getConstructor(parameters);
// And I can use that Constructor to instantiate the class
Object o = constructor.newInstance(new Object[] {"one", "two"});
// To prove it's really there...
System.out.println(o);
Output:
com.crossedstreams.thingy.Foo@20cf2c80
There's plenty of resources out there which go into more detail about this, and you should be aware that you're introducing a dependency that the compiler can't check for you - if you misspell the class name or anything, it will fail at runtime. Also, there's quite a few different types of Exception that might be throws during this process. It's a very powerful technique though.
分享到:
相关推荐
本文将详细讲解如何在C#.NET环境中创建一个带参数的多线程程序,并提供相关的源代码实例。 一、多线程基础 多线程是操作系统中的一个概念,指的是在一个进程中可以同时执行多个独立的执行流,每个执行流被称为一个...
该方法接受多个参数,包括方法名、绑定标志、实例对象以及方法参数等。 ```csharp object[] arguments = new object[0]; MethodInfo method = type.GetMethod("SayHello"); method.Invoke(instance, arguments); ``...
在C# WPF(Windows Presentation Foundation)开发中,创建启动参数是常见的需求,这使得程序在启动时可以接收外部输入,比如命令行参数或者配置文件。这个实例将帮助开发者了解如何在WPF应用中处理这些参数,从而...
### Python中动态创建类实例的方法 #### 背景与目的 在开发过程中,有时候我们需要在运行时根据类名来创建对应的对象实例。这种需求在Java中通常通过反射机制实现。而对于Python这样的动态语言,虽然没有传统的反射...
在"简单工厂模式开发的计算参数实例"中,我们可能有一个名为`MathFactory`的工厂类,它负责根据输入参数创建不同的数学计算类,如加法、减法、乘法和除法等。例如,我们可以有`Addition`、`Subtraction`、`...
如果我们想要使用MEF来加载这样的用户控件,并且这个控件的构造函数带有参数,我们需要做以下几步: 1. **标记UserControl为MEF Part**: 首先,我们需要告诉MEF这个用户控件是一个Part。在C#中,可以使用`[Export...
本篇将详细介绍如何在Spring中使用静态工厂方法来创建实例。 首先,让我们理解什么是静态工厂方法。静态工厂方法是类中的一个静态成员方法,它不依赖于类的实例,而是通过类名直接调用,返回一个对象。这种方法与...
在本示例中,“手工创建的Com实例”指的是我们手动编写代码来创建一个COM对象,而不是使用工具或已有的库。这个过程涉及到了COM接口、IUnknown接口、类工厂、注册表以及客户端如何使用这些COM组件。 1. **COM接口**...
在创建和使用类时,我们首先定义类,然后通过实例化来创建类的个体实例。接下来,我们将深入探讨如何在PHP中创建类和实例化对象,以解答"创建矩形类Rectangle并实例化r1对象"的课后习题。 1. **创建类**: 在PHP中...
在这个实例中,我们将探讨如何在MFC对话框类中创建线程,并向线程函数传递多个参数。 在MFC中,我们通常使用`CWinThread`类来创建和管理线程。`CWinThread`提供了线程的基础设施,包括消息泵和线程同步机制。创建一...
使用 SpringBoot 注入带参数的构造函数实例 SpringBoot 框架中,使用构造函数实例可以通过 @Bean 注解来实现。下面我们来详细介绍如何使用 SpringBoot 注入带参数的构造函数实例。 使用 @Bean 注解来实现构造函数...
- **`ThreadStart`委托**: 它代表没有参数的方法,如果你的线程只需要执行不带参数的操作,可以使用这个委托。例如: ```csharp Thread thread = new Thread(new ThreadStart(MyMethodWithoutParams)); thread....
本实例将深入探讨如何使用JNA调用DLL,并涵盖了各种参数类型,包括基本数据类型、指针、结构体、回调函数、字符串以及数组。 首先,理解JNA的基本工作原理至关重要。JNA通过映射DLL中的函数到Java类的方法来实现...
在给定的代码示例中,我们看到一个名为`createMap`的函数,其中创建了一个新的`classMap`实例,并使用`setAt`方法设置了一些键值对。接下来,我们将详细探讨`classMap`的使用、它的功能以及如何在JavaScript中实现...
这里,`object_instance`是创建的实例,`value1, value2`是传递给`__init__`方法的参数。 3. **访问属性和方法** 可以通过`.`操作符访问类的属性和方法: ```python print(object_instance.attribute) object_...
本实例将重点介绍如何使用PHP创建一个基于SOAP的Web服务。 首先,理解SOAP和REST的区别是必要的。SOAP是一种基于XML的协议,主要用于企业级应用,它提供了一种严格的定义数据格式和交换数据的方式,具有强类型和...
根据给定的文件信息,我们可以总结出以下关于“使用javabean创建您的网上日历本”的相关知识点: ### 一、项目概述 本项目旨在利用JavaBean技术开发一个基于Web的日历应用程序。该项目通过JSP(JavaServer Pages)...
·调用实例工厂方法创建bean 时,必须使用factory-bean 属性来确定工厂bean。 而静态工厂方法则使用class 元素确定静态工厂类。 其相同之处如下: ·都需使用factory-method属性指定产生bean 实例的工厂方法。 ...
1. 创建一个`Excel.ApplicationClass`对象,这个对象是Excel应用程序的实例,表示Excel进程。 2. 使用`Workbooks.Add(true)`创建一个新的工作簿(Workbook)。这里的`true`参数表示创建一个空白的工作簿。 3. 在循环...