capnproto-java icon indicating copy to clipboard operation
capnproto-java copied to clipboard

Generic Types

Open pavelrappo opened this issue 7 years ago • 1 comments

There's an example of a generic struct on Cap’n Proto page:

...
struct Map(Key, Value) {
  entries @0 :List(Entry);
  struct Entry {
    key @0 :Key;
    value @1 :Value;
  }
}
...

After compiling it, I cannot seem to find the corresponding

public static final Factory factory

field in the class Map. There are factories for other types mentioned in the example, but not for this one. Why is that? Does it have anything to do with generics in Java not being reifiable?

pavelrappo avatar Sep 12 '18 16:09 pavelrappo

The factory type depends on the generic parameters. You need to specify those parameters in order to construct a factory. The generated code for your Map struct should include a Map.newFactory() function that you can use for this purpose.

dwrensha avatar Sep 15 '18 22:09 dwrensha