Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
(Opsional) Memperluas konsumen
Bagian opsional ini menunjukkan bagaimana Anda dapat memperluas kode konsumen untuk skenario yang sedikit lebih rumit.
Jika Anda ingin tahu tentang pesanan jual terbesar setiap menit, Anda dapat memodifikasi StockStats
kelas di tiga tempat untuk mengakomodasi prioritas baru ini.
Untuk memperluas konsumen
-
Tambahkan variabel instance baru:
// Ticker symbol of the stock that had the largest quantity of shares sold private String largestSellOrderStock; // Quantity of shares for the largest sell order trade private long largestSellOrderQuantity;
-
Tambahkan kode berikut ke
addStockTrade
:if (type == TradeType.SELL) { if (largestSellOrderStock == null || trade.getQuantity() > largestSellOrderQuantity) { largestSellOrderStock = trade.getTickerSymbol(); largestSellOrderQuantity = trade.getQuantity(); } }
-
Ubah
toString
metode untuk mencetak informasi tambahan:public String toString() { return String.format( "Most popular stock being bought: %s, %d buys.%n" + "Most popular stock being sold: %s, %d sells.%n" + "Largest sell order: %d shares of %s.", getMostPopularStock(TradeType.BUY), getMostPopularStockCount(TradeType.BUY), getMostPopularStock(TradeType.SELL), getMostPopularStockCount(TradeType.SELL), largestSellOrderQuantity, largestSellOrderStock); }
Jika Anda menjalankan konsumen sekarang (ingat untuk menjalankan produser juga), Anda akan melihat output yang mirip dengan ini:
****** Shard shardId-000000000001 stats for last 1 minute ****** Most popular stock being bought: WMT, 27 buys. Most popular stock being sold: PTR, 14 sells. Largest sell order: 996 shares of BUD. ****************************************************************