2010-06-05 44 views
5

是否有可能在运行时更改其某些属性后,从现有java文件创建新的java文件?如何在Java中运行时创建动态类

假设我有一个java文件

pubic class Student{ 

    private int rollNo; 
    private String name; 
    // getters and setters 
    // constructor 
} 

是有可能创造这样的事情,只要rollNo是表关键因素..

public class Student { 
    private StudentKey key; 
    private String name; 
    //getters and setters 
    //constructor 
} 
public class StudentKey { 
    private int rollNo; 
    // getters and setters 
    // construcotors 
} 

请帮助..

+0

提示:回答你的Q?首先以这种方式想象一下,在运行时就可以创建一个类。因为每个类都需要加载,编译然后运行。只能在运行时才可以这样做? – 2010-06-05 13:11:36

+0

@javauser:您可以在运行时使用Java Compiler API来完成此操作(请参阅[此前的答案](http://stackoverflow.com/questions/2130039/javacompiler-from-jdk-1-6-how-to-write -class字节-直接到字节阵列/ 2130290#2130290))。这在这里不适用(至少不是单独的),因为OP想要修改已经编译/加载的类型。但要严格回答你的问题,这是可能的。 – 2010-06-05 13:21:08

+1

@javauser:请只做相关的评论。没有谜语,谢谢。除此之外,“eleet speak”,就像你的*“回答你的Q?”*在SO上皱起了眉头。请不要这样做。 – NoozNooz42 2010-06-05 15:46:16

回答