Hello, Ilya. I don’t get your point
> We don’t passing … binary, just a … BinaryObjeсtBuilder. May be we should go with `setBinaryObjectBuilderField` or `setBinaryObjectField`? > 6 дек. 2019 г., в 13:38, Ilya Kasnacheev <[email protected]> > написал(а): > > Hello! > > I can see where you are getting at, can we call it "setFieldNested" instead > or something like that? > > setBinaryField is confusing because we're not passing anything especially > binary, just a nested BinaryObjectBuilder. > > Regards, > -- > Ilya Kasnacheev > > > пт, 6 дек. 2019 г. в 13:17, Николай Ижиков <[email protected]>: > >> Hello, Igniters. >> >> We have confusing API in `BinaryObjectBuilder` class. >> >> The code below leads to the `ClassCastException` >> The cause is java method resolution rules [1] >> >>> There may be more than one such method, in which case the most specific >> one is chosen >> >> I suggest to deprecate `setField(String name, @Nullable >> BinaryObjectBuilder builder);` method and introduce >> `setBinaryField(String name, @Nullable BinaryObjectBuilder builder);` >> instead of it. >> >> What do you think? >> >> ``` >> public class BugTest extends GridCommonAbstractTest { >> @Test public void testBinaryObject() throws Exception { >> try (Ignite ignite = startGrid(0)) { >> BinaryObjectBuilder builder = >> ignite.binary().builder("testVal") >> .setField("name", "John Doe", String.class); >> >> builder.setField("name", builder.getField("name")); >> } >> } >> } >> ``` >> >> [1] >> https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.12.2
