11package com .binance .api .client .impl ;
22
3- import java .io .IOException ;
4- import okhttp3 .Response ;
5- import okhttp3 .WebSocket ;
6- import okhttp3 .WebSocketListener ;
73import com .binance .api .client .BinanceApiCallback ;
84import com .binance .api .client .exception .BinanceApiException ;
95import com .fasterxml .jackson .core .type .TypeReference ;
106import com .fasterxml .jackson .databind .ObjectMapper ;
7+ import com .fasterxml .jackson .databind .ObjectReader ;
8+ import okhttp3 .Response ;
9+ import okhttp3 .WebSocket ;
10+ import okhttp3 .WebSocketListener ;
11+
12+ import java .io .IOException ;
1113
1214/**
1315 * Binance API WebSocket listener.
@@ -18,31 +20,24 @@ public class BinanceApiWebSocketListener<T> extends WebSocketListener {
1820
1921 private static final ObjectMapper mapper = new ObjectMapper ();
2022
21- private Class <T > eventClass ;
22-
23- private TypeReference <T > eventTypeReference ;
23+ private final ObjectReader objectReader ;
2424
2525 private boolean closing = false ;
2626
2727 public BinanceApiWebSocketListener (BinanceApiCallback <T > callback , Class <T > eventClass ) {
2828 this .callback = callback ;
29- this .eventClass = eventClass ;
29+ this .objectReader = mapper . readerFor ( eventClass ) ;
3030 }
3131
3232 public BinanceApiWebSocketListener (BinanceApiCallback <T > callback , TypeReference <T > eventTypeReference ) {
3333 this .callback = callback ;
34- this .eventTypeReference = eventTypeReference ;
34+ this .objectReader = mapper . readerFor ( eventTypeReference ) ;
3535 }
3636
3737 @ Override
3838 public void onMessage (WebSocket webSocket , String text ) {
3939 try {
40- T event = null ;
41- if (eventClass == null ) {
42- event = mapper .readValue (text , eventTypeReference );
43- } else {
44- event = mapper .readValue (text , eventClass );
45- }
40+ T event = objectReader .readValue (text );
4641 callback .onResponse (event );
4742 } catch (IOException e ) {
4843 throw new BinanceApiException (e );
0 commit comments