私はオブジェクトを返すべきであるが、解析(connectionRequest
,とpostresponse
)を使用すると、常にnull値が返されるという単純な方法では苦労しています。私のコードコードネーム1の構文解析
Paiement P = new PaiementDAO().FindByCardNumber("5300721124642197");
System.out.println("hi "+P.getCardHolderName());
の
例出力は常に間違って何findby
方法を入力後、最初のsystem.out.println
を実行していますか?あなたの実行順序の仮定が正しければ
これは私の完全なコード
` public Paiement FindByCardNumber(String CardNumber) {
Paiement P = new Paiement();
ConnectionRequest connectionRequest;
connectionRequest = new ConnectionRequest() {
List<Paiement> colors = new ArrayList<>();
@Override
protected void readResponse(InputStream input) throws IOException {
System.out.println("hi read response");
JSONParser json = new JSONParser();
try {
Reader reader = new InputStreamReader(input, "UTF-8");
Map<String, Object> data = json.parseJSON(reader);
List<Map<String, Object>> content
= (List<Map<String, Object>>) data.get("root");
colors.clear();
for (Map<String, Object> obj : content) {
colors.add(
new Paiement((String) obj.get("cardholdername"), (String) obj.get("cardnumber"), (String) obj.get("expirationdate"), (String) obj.get("securitycode"), (String) obj.get("type"), Float.parseFloat((String) obj.get("solde"))));
}
} catch (IOException err) {
}
}
@Override
protected void postResponse() {
System.out.println("hi post response");
for (Paiement x : colors) {
P = x;
System.out.println(P);
return;
}
}
};enter code here
connectionRequest.setUrl("http://localhost/payement/findbynumber.php?num=" + CardNumber);
NetworkManager.getInstance().addToQueue(connectionRequest);
return P;`
このような例外を捕まえてはいけません。ロギングなしでエラーを飲み込んでいる可能性が非常に高いです。私は、応答の最初の行にブレークポイントを置き、コードをステップ実行することをお勧めします。あなたは価値を取り戻しますか?それは何が問題なのかはっきりしていませんが、変数を調べることで簡単に見ることができます。 –
私はいくつかの値(system.out.println)を追加したいのですが、このコードが実行されると、これらの行は次のとおりです。 {connectionRequest.setUrl( "http://localhost/payement/findbynumber.php?num =" + CardNumber); NetworkManager.getInstance()。addToQueue(connectionRequest); return P; '} –
OK、あなたの質問はそれではっきりしませんでした。 'addToQueue'は非同期です。 'addToQueueAndWait()'で置き換えることができます。 –