`
conkeyn
  • 浏览: 1524761 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

使用Class创建带参数实例

 
阅读更多

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源代码编写

    本文将详细讲解如何在C#.NET环境中创建一个带参数的多线程程序,并提供相关的源代码实例。 一、多线程基础 多线程是操作系统中的一个概念,指的是在一个进程中可以同时执行多个独立的执行流,每个执行流被称为一个...

    C#反射创建类的实例

    该方法接受多个参数,包括方法名、绑定标志、实例对象以及方法参数等。 ```csharp object[] arguments = new object[0]; MethodInfo method = type.GetMethod("SayHello"); method.Invoke(instance, arguments); ``...

    C# WPF 创建启动参数的简单实例

    在C# WPF(Windows Presentation Foundation)开发中,创建启动参数是常见的需求,这使得程序在启动时可以接收外部输入,比如命令行参数或者配置文件。这个实例将帮助开发者了解如何在WPF应用中处理这些参数,从而...

    Python中动态创建类实例的方法

    ### Python中动态创建类实例的方法 #### 背景与目的 在开发过程中,有时候我们需要在运行时根据类名来创建对应的对象实例。这种需求在Java中通常通过反射机制实现。而对于Python这样的动态语言,虽然没有传统的反射...

    简单工厂模式开发的计算参数实例(含源代码)

    在"简单工厂模式开发的计算参数实例"中,我们可能有一个名为`MathFactory`的工厂类,它负责根据输入参数创建不同的数学计算类,如加法、减法、乘法和除法等。例如,我们可以有`Addition`、`Subtraction`、`...

    WPF下使用MEF导入带参数构造函数的用户控件

    如果我们想要使用MEF来加载这样的用户控件,并且这个控件的构造函数带有参数,我们需要做以下几步: 1. **标记UserControl为MEF Part**: 首先,我们需要告诉MEF这个用户控件是一个Part。在C#中,可以使用`[Export...

    JavaEE spring静态工厂创建实例

    本篇将详细介绍如何在Spring中使用静态工厂方法来创建实例。 首先,让我们理解什么是静态工厂方法。静态工厂方法是类中的一个静态成员方法,它不依赖于类的实例,而是通过类名直接调用,返回一个对象。这种方法与...

    手工创建的Com实例

    在本示例中,“手工创建的Com实例”指的是我们手动编写代码来创建一个COM对象,而不是使用工具或已有的库。这个过程涉及到了COM接口、IUnknown接口、类工厂、注册表以及客户端如何使用这些COM组件。 1. **COM接口**...

    PHP程序设计-3期(KC016) 3.8.1创建和使用类课后习题:创建类和实例化对象.doc

    在创建和使用类时,我们首先定义类,然后通过实例化来创建类的个体实例。接下来,我们将深入探讨如何在PHP中创建类和实例化对象,以解答"创建矩形类Rectangle并实例化r1对象"的课后习题。 1. **创建类**: 在PHP中...

    多线程向线程函数传递多个参数实例

    在这个实例中,我们将探讨如何在MFC对话框类中创建线程,并向线程函数传递多个参数。 在MFC中,我们通常使用`CWinThread`类来创建和管理线程。`CWinThread`提供了线程的基础设施,包括消息泵和线程同步机制。创建一...

    使用Springboot注入带参数的构造函数实例

    使用 SpringBoot 注入带参数的构造函数实例 SpringBoot 框架中,使用构造函数实例可以通过 @Bean 注解来实现。下面我们来详细介绍如何使用 SpringBoot 注入带参数的构造函数实例。 使用 @Bean 注解来实现构造函数...

    C#线程多个参数

    - **`ThreadStart`委托**: 它代表没有参数的方法,如果你的线程只需要执行不带参数的操作,可以使用这个委托。例如: ```csharp Thread thread = new Thread(new ThreadStart(MyMethodWithoutParams)); thread....

    java用JNA调用dll实例,包含各种参数调用

    本实例将深入探讨如何使用JNA调用DLL,并涵盖了各种参数类型,包括基本数据类型、指针、结构体、回调函数、字符串以及数组。 首先,理解JNA的基本工作原理至关重要。JNA通过映射DLL中的函数到Java类的方法来实现...

    classMap的使用

    在给定的代码示例中,我们看到一个名为`createMap`的函数,其中创建了一个新的`classMap`实例,并使用`setAt`方法设置了一些键值对。接下来,我们将详细探讨`classMap`的使用、它的功能以及如何在JavaScript中实现...

    python之定义类并创建实例共2页.pdf.zip

    这里,`object_instance`是创建的实例,`value1, value2`是传递给`__init__`方法的参数。 3. **访问属性和方法** 可以通过`.`操作符访问类的属性和方法: ```python print(object_instance.attribute) object_...

    php创建web service实例代码

    本实例将重点介绍如何使用PHP创建一个基于SOAP的Web服务。 首先,理解SOAP和REST的区别是必要的。SOAP是一种基于XML的协议,主要用于企业级应用,它提供了一种严格的定义数据格式和交换数据的方式,具有强类型和...

    使用javabean创建您的网上日历本(1)_jsp实例

    根据给定的文件信息,我们可以总结出以下关于“使用javabean创建您的网上日历本”的相关知识点: ### 一、项目概述 本项目旨在利用JavaBean技术开发一个基于Web的日历应用程序。该项目通过JSP(JavaServer Pages)...

    spring 实例的工厂方法 依赖注入属性,都使用property 元素确

    ·调用实例工厂方法创建bean 时,必须使用factory-bean 属性来确定工厂bean。 而静态工厂方法则使用class 元素确定静态工厂类。 其相同之处如下: ·都需使用factory-method属性指定产生bean 实例的工厂方法。 ...

    C# WinForm创建Excel文件的实例

    1. 创建一个`Excel.ApplicationClass`对象,这个对象是Excel应用程序的实例,表示Excel进程。 2. 使用`Workbooks.Add(true)`创建一个新的工作簿(Workbook)。这里的`true`参数表示创建一个空白的工作簿。 3. 在循环...

Global site tag (gtag.js) - Google Analytics