capnproto-java
capnproto-java copied to clipboard
Generic Types
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?
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.