Performance of Java Object Referece
Hi all,
I have a Performance question want to ask. The original code are shown in the below:
publicstatic String[] itemDetails =
{"item ID","item Title","item Description","item Price","quantity in stock","quantity in order","release day"};
publicstatic String[] cdDetails =
{"CD type","artist name","number of Tracks","Duration"};
publicstatic String[] bookDetails =
{"Book type","ISBN","author name","publisher"};
public List addItem(){
boolean isCD =true;
List list =new List();
BookStoreUtility bsUtil =new BookStoreUtility();
CD cd =new CD();
Book book =new Book();
for (int i = 0; i < itemDetails.length; i++ ){
input = Keyboard.readStr();// get input from users
if ( i == 0 ){
if ( ( input.charAt(0) =='c' || input.charAt(0) =='C') )
isCD =true;
else
isCD =false;
}
if (isCD)
PopulateCD(i, input, cd);
else
PopulateBook(i, input, book);
}
list.add(cd);
return list;
}
publicvoid PopulateCD(int i, String paramValue, CD cd){
try{
switch (i){
case 0: cd.setItemID(paramValue);break;
case 1: cd.setItemTitle(paramValue);break;
case 2: cd.setItemDes(paramValue);break;
case 3: cd.setItemPrice(Float.parseFloat(paramValue));break;
case 4: cd.setQuanInStock(Long.parseLong(paramValue));break;
case 5: cd.setQuanInOrder(Long.parseLong(paramValue));break;
case 6: cd.setRelDate(df.parse(paramValue));break;
case 7: cd.setType(paramValue.charAt(0));break;
case 8: cd.setArtist(paramValue);break;
case 9: cd.setNum_of_tracks(Integer.parseInt(paramValue));break;
case 10: cd.setDuration(Float.parseFloat(paramValue));break;
}
}catch (Exception e){};
}
publicvoid PopulateBook(int i, String paramValue, Book book){
try{
switch (i){
case 0: book.setItemID(paramValue);break;
case 1: book.setItemTitle(paramValue);break;
case 2: book.setItemDes(paramValue);break;
case 3: book.setItemPrice(Float.parseFloat(paramValue));break;
case 4: book.setQuanInStock(Long.parseLong(paramValue));break;
case 5: book.setQuanInOrder(Long.parseLong(paramValue));break;
case 6: book.setRelDate(df.parse(paramValue));break;
case 7: book.setType(paramValue.charAt(0));break;
case 8: book.setAuthor(paramValue);break;
case 9: book.setISBN(paramValue);break;
case 10: book.setPublisher(paramValue);break;
}
}catch (Exception e){};
}
I have a addItem method that get inputs from user. I have 3 classes(Object), they are Book, CD and Item. Book and CD objects are extending from the Item object. At first, the DataEntry Person would need to input the ItemID. If the ItemID is started with "C", that means he/she is inserting CD's information, and all the inputs will be populated to CD object, and it works the same way for Book Object, ...etc. All the input parameters names will be stored in a String[], such as itemDetails, cdDetails, etc.
However, the program doesn't know the User is inserting whether the Book or CD information at the beginning, so by default i will just use a forLoop to read all the parameters from String[] itemDetails. After the user entered the first parameter, the program knows the user is inserting wheter CD or Book. I would like to concat the cdDetails or bookDetails String array to the default itemDetails String array so that all the required parameters can be read from user.
I would like to get some nice suggestions on how to implement this thing. Someone said it's not oo enough. I want to learn how to design fast, dynamic and portable codes. Please help me out.
Thanks in advance
Transistor

