I’m too, Alex. But, this signature leads to the same error as I mentioned.
> 6 дек. 2019 г., в 15:53, Alexei Scherbakov <alexey.scherbak...@gmail.com> > написал(а): > > I wonder why signature is not > > setField(String name, BinaryObject obj) > > пт, 6 дек. 2019 г. в 15:00, Ilya Kasnacheev <ilya.kasnach...@gmail.com>: > >> Hello! >> >> I think that repeating argument type name in method name is a code smell. >> Rather, we should describe how this method is different from other methods >> of its bunch. >> >> In this case, it is different since it allows you to create nested binary >> objects, i.e., ones with non-flat structure. >> >> Regards, >> -- >> Ilya Kasnacheev >> >> >> пт, 6 дек. 2019 г. в 13:45, Николай Ижиков <nizhi...@apache.org>: >> >>> 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 <ilya.kasnach...@gmail.com> >>> написал(а): >>>> >>>> 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, Николай Ижиков <nizhi...@apache.org>: >>>> >>>>> 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 >>> >>> >> > > > -- > > Best regards, > Alexei Scherbakov