title: Why Stripe uses Map in java api
body: <p>What is the reason for using HashMap in Stripe java api?</p>
  
  <p>From stripe.com: </p>
  
  <pre><code>Stripe.apiKey = "sk_test_BQokikJOvBiI2HlWgH4olfQ2";
  
  Map&lt;String, Object&gt; ownerParams = new HashMap&lt;String, Object&gt;();
  ownerParams.put("email", "payinguser+fill_now@example.com");
  
  Map&lt;String, Object&gt; sourceParams = new HashMap&lt;String, Object&gt;();
  sourceParams.put("type", "bitcoin");
  sourceParams.put("amount", 1000);
  sourceParams.put("currency", "usd");
  sourceParams.put("owner", ownerParams);
  
  Source source = Source.create(sourceParams);
  
  Map&lt;String, Object&gt; chargeParams = new HashMap&lt;String, Object&gt;();
  chargeParams.put("source", source.getId());
  chargeParams.put("amount", source.getAmount());
  chargeParams.put("currency", source.getCurrency());
  Charge charge = Charge.create(chargeParams);
  </code></pre>
  
  <p>Why not just use simple java object with getters and setters?
  (I understand that I can do my own implementation in Java because it's just http requests)</p>