Hi wieder mal!
Ich arbeite nach wie vor an einem Java Client für Amazon web Services (hatte da schon mal ein Problem gepostet).
Ich habe jetzt ein kleines Problem, hier ein Ausschnitt aus meinem Programm:
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();
}
searchObject.setParameter("Dev-Tag",DEVTOKEN);
searchObject.setParameter("Mode","books");
searchObject.setParameter("Keyword",keyword);
Die Art der Suche wird beim Programmstart als Parameter übergeben (args[0]). Je nachdem soll dann das Object searchObject aus der entsprechenden Klasse instanziiert werden. Die Methode setParameter() ist in allen Klassen definiert.
Allerdings bekomme ich beim Versuch, das Programm zu kompilieren, immer die Fehlermeldung
Zitat:
FirstClient.java:58: cannot resolve symbol
symbol : method setParameter (java.lang.String,java.lang.String)
location: class java.lang.Object
searchObject.setParameter("Dev-Tag",DEVTOKEN);
|
Scheinbar wird in der Klasse Object nach der Methode gesucht, wo sie natürlich nicht gefunden wird...
Wenn ich die Zeile
Object searchObject;
rauslösche, und den Rest so abändere
Code:
String directive = args[0];
String keyword = args[1];
if (directive.equals("actor")) {
ActorSoap searchObject = new ActorSoap();
} else if (directive.equals("artist")) {
ArtistSoap searchObject = new ArtistSoap();
} else if (directive.equals("asin")) {
AsinSoap searchObject = new AsinSoap();
} else if ...
} else {
showUsage();
}
searchObject.setParameter("Dev-Tag",DEVTOKEN);
searchObject.setParameter("Mode","books");
searchObject.setParameter("Keyword",keyword);
funktioniert's leider auch nicht, da die Objekte wohl nur in dem if-Block gültig sind, in dem sie definiert werden (oder?)
Zitat:
FirstClient.java:58: cannot resolve symbol
symbol : variable searchObject
location: class FirstClient
searchObject.setParameter("Dev-Tag",DEVTOKEN);
|
Ich hoffe, ich habe das Problem verständlich erklärt.
Wahrscheinlich ist die Lösung eh simpel, aber ich bin leider nicht sehr Java-erfahren und deshalb für jede Hilfe dankbar!
