2013-07-23 24 views
0

in java有可能在运行时创建一个hashmap /树结构,并且只在运行时将其保存为文件/ Java文件。并将其保存为java文件或编译文件并将其用于其他应用程序。这是一个可能的情况?在java中使用hashmap在运行时创建一个类文件

+0

重复:HTTP://stackoverflow.com/questions/7608704/java-generate-class-file-at-runtime –

+0

即使使用运行时运行javac命令这是可能的。 –

+0

嗨苏雷什,不,我没有看到过这个问题。我问的是如何用hashmap内容生成我的文件,以及所有这些在运行时 – Aada

回答

0

我们可以在运行时将java对象保存并检索到文件中。

保存对象应该实现Serializable接口

类Person实现Serializable {

String firstName; 
String lastName; 

public Person(String firstName, String lastName) { 
    super(); 
    this.firstName = firstName; 
    this.lastName = lastName; 
} 
public String getFirstName() { 
    return firstName; 
} 
public void setFirstName(String firstName) { 
    this.firstName = firstName; 
} 
public String getLastName() { 
    return lastName; 
} 
public void setLastName(String lastName) { 
    this.lastName = lastName; 
} 
@Override 
public String toString() { 
    return "Person [firstName=" + firstName + ", lastName=" + lastName 
      + "]"; 
} 

}

公共类HashMapSerialization {

public static void main(String[] args) throws Exception { 

    Map<String, Person> map = new HashMap<String, Person>(); 
     map.put("1", new Person("firstName1","lastName1")); 
     map.put("2", new Person("firstName2","lastName2")); 
     map.put("3", new Person("firstName3","lastName3")); 
     FileOutputStream fos = new FileOutputStream("person.ser"); 
     ObjectOutputStream oos = new ObjectOutputStream(fos); 
     oos.writeObject(map); 
     oos.close(); 
} 

}

公共类HashMapDeSerialization {

public static void main(String[] args) throws Exception { 
    FileInputStream fis = new FileInputStream("person.ser"); 
     ObjectInputStream ois = new ObjectInputStream(fis); 
     Map<String, Person> anotherMap = (Map) ois.readObject(); 
     ois.close(); 
     Set keySet = anotherMap.keySet(); 
     for (Object object : keySet) { 
      Person person = anotherMap.get((String)(object)); 
      System.out.println(person.toString()); 
     } 
} 

}

相关问题