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

Reply via email to