es geht auf zwei arten
Code:
String directive = args[0];
Object searchObject;
if (directive.equals("actor")) {
searchObject = new ActorSoap();
((ActorSoap)searchObject).setParameter("Dev-Tag",DEVTOKEN);
((ActorSoap)searchObject).setParameter("Mode","books");
((ActorSoap)searchObject).setParameter("Keyword",keyword);
} else if (directive.equals("artist")) {
searchObject = new ArtistSoap();
((ArtistSoap)searchObject).setParameter("Dev-Tag",DEVTOKEN);
((ArtistSoap)searchObject).setParameter("Mode","books");
((ArtistSoap)searchObject).setParameter("Keyword",keyword);
} else if (directive.equals("asin")) {
searchObject = new AsinSoap();
((AsinSoap)searchObject).setParameter("Dev-Tag",DEVTOKEN);
((AsinSoap)searchObject).setParameter("Mode","books");
((AsinSoap)searchObject).setParameter("Keyword",keyword);
} else if ...
} else {
showUsage();
}
das is die nicht so schöne art
schöner wärs wenn du eine (vielleicht abstrake) oberklasse (bzw auch interface) soap hast, die die methode setparameter definiert
alle *Soap sind dann extends Soap (bzw implements Soap)
dann gehts mit
Code:
String directive = args[0];
Object searchObject;
if (directive.equals("actor")) {
searchObject = new ActorSoap();
} else if (directive.equals("artist")) {
searchObject = new ArtistSoap();
} else if (directive.equals("asin")) {
searchObject = new AsinSoap();
} else if ...
} else {
showUsage();
}
((Soap)searchObject).setParameter("Dev-Tag",DEVTOKEN);
((Soap)searchObject).setParameter("Mode","books");
((Soap)searchObject).setParameter("Keyword",keyword);