APIに接続してデータを取得する必要があるという要件があります。コード上に使用して返されるjava-クエリによって返されたオブジェクトを正しく定義されたクラスにマップすることができません
Iは、以下code--
untypedResult=wt.QueryPermissions();
resp.getWriter().println(" Response for QueryPermissions----");
if(wt.errormsg=="No Error")
{
hMap = (HashMap<String, Integer>) untypedResult;
Set set = hMap.entrySet();
Iterator i = set.iterator();
while(i.hasNext()){
Map.Entry me = (Map.Entry)i.next();
resp.getWriter().println(me.getKey() + " : " + me.getValue());
出力を使用して、ハッシュマップにクエリによって返されたオブジェクトをマッピングした -
Response for QueryPermissions----
get_all_words_popularity : {keyphrase_limit=999, timeout_limit=99, cost_per_call=99, result_limit=999}
は今はしようとしました次のクラスにレスポンス(オブジェクト内)をマップします。
public class wt_queryperm_class {
public Integer keyphrase_limit;
public Integer timeout_limit;
public Integer cost_per_call;
public Integer result_limit;
}
また、私はコードを変更しました。
//declare new object to store result of QueryPermissions
wt_queryperm_class a;
untypedResult=wt.QueryPermissions();
resp.getWriter().println(" Response for QueryPermissions----");
if(wt.errormsg=="No Error")
{
hMap = (HashMap<String, Integer>) untypedResult;
Set set = hMap.entrySet();
Iterator i = set.iterator();
while(i.hasNext()){
Map.Entry me = (Map.Entry)i.next();
a= (wt_queryperm_class)(me.getValue());
resp.getWriter().println(me.getKey() + " : Cost per call=" + a.cost_per_call + "Keyphrase limit=" + a.keyphrase_limit + " Result limit=" + a.result_limit +" Timeout limit=" + a.timeout_limit);
}
below--示すように、私は上記のcode--を実行したとき、私は
Problem accessing /keywords_trial_application. Reason:
java.util.HashMap cannot be cast to com.taurusseo.keywords.wt_queryperm_class
Caused by:
java.lang.ClassCastException: java.util.HashMap cannot be cast to com.taurusseo.keywords.wt_queryperm_class
次のエラーを取得するしかし、私はここで間違って何をしているのですか?データを表示するためのエド応答を正しくキャストして、4つの値のそれぞれを正しく抽出できるようにするにはどうすればよいですか?
ありがとう、あなたは答えが非常に明るいです! – Arvind