`
shangmw
  • 浏览: 22138 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

能否动态的创建一个类

阅读更多
请问能否根据动态获得的参数而动态的创建一个类?
分享到:
评论
8 楼 Godlikeme 2007-05-06  
j2me里面搞这些干啥?有时间还是考虑怎么能多弄几个对象用吧。
7 楼 headsome 2007-05-06  
楼主的关键词是J2ME

在CLDC 1.0中,是不支持反射的,就是说不能动态创建类

在CLDC 1.1中,支持很少的反射,效率很低。

综上,在J2ME程序中,不要琢磨反射的事情了~
6 楼 LucasLee 2007-05-05  
shangmw 写道
这位楼上说的是在工程里面已经编写了一个类,然后再在程序运行的时候动态的创建。而我的意思是原本工程里面没有这个类,(也就是不能通过java.lang.Class.forName("classname").newInstance()来取得这个类的实例)而是在程序里面现行的创建一个类

仔细的想想,在JAVA代码里面都是用的经过编译的二进制代码,如果这样的话,我上面想的根本行不通,因为没有经过编译。


也不是完全不可以.
你可以读取一个java源文件参数,动态调用javac编译它,然后用反射实例化,调用.
有点类似IDE(eclipse)的用法.
5 楼 shangmw 2007-05-05  
这位楼上说的是在工程里面已经编写了一个类,然后再在程序运行的时候动态的创建。而我的意思是原本工程里面没有这个类,(也就是不能通过java.lang.Class.forName("classname").newInstance()来取得这个类的实例)而是在程序里面现行的创建一个类

仔细的想想,在JAVA代码里面都是用的经过编译的二进制代码,如果这样的话,我上面想的根本行不通,因为没有经过编译。
4 楼 SteveGY 2007-05-04  
shangmw 写道
请问能否根据动态获得的参数而动态的创建一个类?

呵呵,当然是可以的,但你的问题也问得太简单了,应该参考一下这个论坛的“提问的艺术”。
“动态创建”,问题是如何理解“动态创建”,比如:
最简单的,是提供一个class的名称(算不算一个动态的参数?),然后“动态创建”new Instance一个类的实例,前提是,你已经在classpath中有了这个这个类的class文件。可以参考
java.lang.Class.forName("classname").newInstance()

复杂一些的,比如:根据提供的ClassName, field name, method name and parameters' name 使用java.lang.reflect包,创建真正的“动态”类和实例。不写了,这方法太累,有兴趣自己去看java doc了。java在这一块也算比较完善了,但还是比不上.net,.net的反射设计比较清晰、干净。
3 楼 bigpanda 2007-05-04  
Java 6里面带编译器,做这个事就容易多了。
2 楼 javavsnet 2007-05-04  
可以的,但是很复杂,代价太大了,用asm可以在运行时生成类。说说你的需求,看是否一定要动态创建类。
1 楼 LucasLee 2007-05-04  
这个对于静态类型的Java应当是不可以的.

相关推荐

    .net c#动态创建程序集、类、属性、方法等

    二、动态创建类 创建类的核心在于TypeBuilder类。通过TypeBuilder,我们可以定义类的元数据,包括类名、基类、访问修饰符以及接口实现。例如,可以使用DefineClass方法定义一个类,并用DefineMethod方法定义方法。...

    CreateClass_net c#动态创建程序集、类、属性、方法等

    动态创建类的过程通常包括以下步骤: 1. 创建`AssemblyBuilder`实例,这将定义程序集的名称、位置和权限。 2. 使用`AssemblyBuilder`创建`ModuleBuilder`,模块是程序集中的一个可加载单元。 3. 使用`ModuleBuilder`...

    Python-动态创建一个模型的多个tablename并通过DjangoORM操作

    在Django中动态创建模型并设置不同表名,我们需要创建一个基类,然后通过继承该基类来创建不同的模型。这个基类可以包含一些公共的字段和方法,而子类则可以根据需求添加特定的字段。例如: ```python from django....

    qt通过类名动态创建对象

    元对象系统的关键组件是`QMetaObject`类,它存储了关于一个类的元数据,如类名、父类名、方法、信号和槽等。 要实现动态创建对象,我们通常会遵循以下步骤: 1. **注册类**:首先,你的类需要继承自`QObject`或者...

    MFC中动态创建多个按钮

    在MFC(Microsoft Foundation Classes)框架中,动态创建控件是一项常见的需求,特别是当你需要根据程序运行时的具体情况创建不同的用户界面元素时。本篇主要介绍如何在MFC的对话框中动态创建多个按钮,并在不再需要...

    MFC 动态创建窗口与对话框

    对话框的动态创建通常通过`CreateDialogIndirect`或`CreateDialogParam`函数完成,它们需要一个资源模板ID。首先,你需要在资源文件中定义对话框模板,然后在代码中加载和显示它: ```cpp CDialogDlg dlg; if (!...

    Delphi 动态创建Panel

    接下来,我们将在这个动态创建的Panel上添加一个TRzBackground组件。TRzBackground是第三方库(如RZSoft)提供的组件,用于设置复杂背景。它的创建方法与TPanel类似: ```delphi var Background: TRzBackground; ...

    qt动态创建窗体

    1. **创建窗体类**:定义一个继承自QWidget的新类,例如MyWidget。在这个类中,你可以添加自己的控件和功能。 ```cpp class MyWidget : public QWidget { Q_OBJECT public: explicit MyWidget(QWidget *parent = ...

    MFC中动态创建控件

    需要注意的是,动态控件不能像静态控件那样直接声明对象,而是需要通过new关键字创建对象实例。例如: ```cpp CButton* p_MyBut = new CButton(); // 创建按钮对象 ``` 随后使用CButton类的`Create()`函数来创建...

    Emit创建动态类

    标题"使用Emit创建动态类"揭示了这一技术的一个核心应用,即在程序执行过程中生成新的类实例,而不是在设计时预先定义。这种方式具有很高的灵活性,尤其在需要自定义行为或动态数据模型的情况下非常有用。 描述中...

    动态创建对话框 动态创建对话框1

    为了动态创建对话框,我们需要定义一个继承自`CDialog`的类,并重写必要的成员函数,如`OnInitDialog()`。 3. **对话框资源**: 虽然我们在这里讨论的是动态创建,但了解对话框资源仍然有用。对话框资源包含在`.rc`...

    VC动态创建Edit

    "VC动态创建Edit"指的是在程序运行时动态地创建一个编辑框控件(CEdit),让用户能够输入文字,并且能够在用户完成输入后获取这些内容,最后适时地销毁这个控件。动态创建控件的好处在于可以根据需要在运行时灵活地...

    RabbitMQ工具类实现配置文件动态创建队列和绑定

    本篇文章将重点讲解如何使用RabbitMQ结合Java实现一个工具类,动态地根据配置文件创建队列和绑定。 首先,我们需要了解RabbitMQ的基本概念。在RabbitMQ中,队列(Queue)是存储消息的地方,生产者(Producer)发送...

    利用Type动态创建类实例(C#反射)可以演变抽象工厂

    在C#编程中,反射是一种强大的...总结来说,利用C#的Type和反射机制,我们可以动态创建类实例,进而实现一个动态的抽象工厂,适应不断变化的需求。这种结合使用的方法在处理不确定或扩展性需求较高的系统中非常有用。

    动态创建报表的五个类

    本文将深入探讨如何使用C#语言,通过五个关键类来实现动态创建基于rdlc格式的报表。rdlc报表是Microsoft .NET Framework中用于本地报告的一种格式,它允许开发者在应用程序中嵌入自定义的报告功能。 首先,我们来看...

    MFC 动态创建按钮示例

    通过以上步骤,你就成功地在MFC对话框中动态创建了一个按钮,并且为其添加了单击事件的响应。这种方式在某些需要动态生成控件或者需要在运行时决定按钮数量和功能的场景中非常有用。 在实际开发中,你可能还需要...

    动态创建控件DynamicMultiCtrls

    标题中的“动态创建控件DynamicMultiCtrls”特指这种技术的一个实例,主要涉及到如何在程序运行时动态地生成多个控制元素,如静态文本框和编辑框。 动态创建控件的常见应用场景包括但不限于: 1. 数据展示:当数据...

    C#动态创建button的方法

    首先,我们来看一个简单的例子,这个例子展示了如何在`Form`中动态创建一个`Button`控件: ```csharp using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using ...

    MFC六大关键技术剖析之动态创建

    在MFC(Microsoft Foundation Classes)库中,动态创建是一种核心技术,它允许程序在运行时根据需要创建指定类的对象。动态创建是MFC框架的重要组成部分,尤其在处理框架窗口对象、视对象以及文档对象时,这些对象...

    VC++实现动态创建对话框,非常好的C++源代码

    - 下面是一个简单的示例代码片段,展示了如何动态创建一个对话框和按钮: ```cpp // 自定义对话框类 class CMyDynamicDialog : public CDialog { // ... }; // 主程序中 CMyDynamicDialog* pDialog = new ...

Global site tag (gtag.js) - Google Analytics