Re: deserilize question
here is a condensed code showing effort to deserialize my hashmap object
have yet to code the serialize (writeobject )
in RegexRecord.java::::::::::::::::::::
package regextest;
public class RegexRecord {
String Name, Regex, Remark, Option, Groups;
Boolean bTested;
/** Creates a new instance of RegexRecord */
public RegexRecord() {
}
}
In RegexText.java:::::::::::::::
package regextest;
import java.util.regex.*;
import java.util.*;
import java.io.*;
public class RegexTest extends javax.swing.JFrame {
static final long serialVersionUID = 1239487938L;
HashMap<String, RegexRecord> myRegexHolder;
String strHomeFolder, strRegexHolderObjFSpec;
final String strRegexHolderObjFN = ".RegexHolderObj.ser";
/** Creates new form RegexTest */
public RegexTest() {
this.setTitle("Regex Test");
this.setSize(850, 860);
this.setVisible(true);
this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
// setup myRegexHolder
try {
strHomeFolder = System.getenv("home");
setStatus("HOME is "+strHomeFolder);
} catch (Exception e){
strHomeFolder = "h:/";
setStatus("Security exception or not finding HOME environment -
defaulted HomeFolder to h:/");
} ;
strRegexHolderObjFSpec = strHomeFolder + strRegexHolderObjFN;
if ( (new java.io.File(strRegexHolderObjFSpec)).exists()) {
// restore myRegexHolder
boolean bFailed = false;
try {
// read and deserialize the blob
FileInputStream fileIn = new
FileInputStream(strRegexHolderObjFSpec);
ObjectInputStream ois = new ObjectInputStream(fileIn);
myRegexHolder = (HashMap<String, regextest.RegexRecord>)
ois.readObject();
//myRegexHolder = myRegexHolder.readObject(ois);
ois.close();
} catch (ClassNotFoundException ex) {
setStatus("Exception in deSerializing myRegexHolder: " +
ex.getMessage());
ex.printStackTrace();
bFailed = true;
} catch (IOException ex) {
setStatus("Exception in deSerializing myRegexHolder - IO
error: " + ex.getMessage());
ex.printStackTrace();
bFailed = true;
}
if ( bFailed == false) setStatus("restore myRegexHolder
successfully from user file");
} else {
// create empty myRegexHolder
myRegexHolder = new HashMap<String, RegexRecord>(180,
(float)0.75);
setStatus("Created myRegexHolder successfully for initial
capacity of 180 and 75% load factor");
};
}
void setStatus(String strMsg) {
JOptionPane.showMessageDialog(null, "RegexTest serialization Demo",
strMsg,
JOptionPane.INFORMATION_MESSAGE);
// this is replacement of the swing status gui to demonstrate problem
// not real production code
}
}
Naturally I got the compiler message
regextest2.java:40: warning: [unchecked] unchecked cast
found : java.lang.Object
required: java.util.HashMap<java.lang.String,regextest.RegexRecord>
myRegexHolder = (HashMap<String, RegexRecord>)
ois.readObject();
^
1 warning
I thought I don't have to write my own serialization code but I am using jdk
1.5
Thank you very much for your time.