Hi, I've been dipping my toe in using Avro and I had a question about
the compiler-generated Java classes.

I notice that something like

{"name": "Request",
 "type": "record",
  "fields": [{"name": "params", "type": {"type":"map", "values": "string"}}]}

will generate a Request.java with a field like:
   Map<CharSequence,CharSequence> params;

which is annoying in many common uses of this class. For example this
code won't compile:
  Map<String,String> map = ... something I got from somewhere else...
  request.params = map;  // compile error

This could be avoided by instead declaring the type of params as:
  Map<? extends CharSequence, ? extends CharSequence> params;

and I think is more accurate.  It looks like this is a straightforward
change in SpecificCompiler.javaType().  If this seems desirable, I'll
log a bug and submit a patch.

Reply via email to