Hi, @guodong

Seems like we have a same issue[1] submitted by @yiji
Pls check and close your issue if these two issues are with the same thing.
If necessary, we can reopen the old one to discuss.

[1] https://github.com/apache/incubator-dubbo/issues/2766

Guodong <[email protected]> 于2019年1月9日周三 下午5:23写道:

> Ok! @beiwei30 pls look it
> https://github.com/apache/incubator-dubbo/issues/3177
>
> Ian Luo <[email protected]> 于2019年1月9日周三 下午4:26写道:
>
> > Guodong,
> >
> > Would you mind to file an issue against your findings and suggestions?
> You
> > could either assign it to me (@beiwei30) or Zhen (@LiZhenNet).
> >
> > Thanks,
> > -Ian.
> >
> >
> >
> > On Wed, Jan 9, 2019 at 12:01 PM zgd <[email protected]> wrote:
> >
> > > 建议:
> > > 当存在重载方法时:
> > > 1、如果重载方法参数长度不同,则可以正常匹配
> > > 2、当存在重载方法参数长度相同时,给用户提示,必须传入class参数
> > > Google Translation:
> > > Suggest:
> > > When there is an overloaded method:
> > > As shown in Figure 1, if the overload method parameters have different
> > > lengths, they can match normally.
> > > 2, when there are overloaded method parameters with the same length,
> > prompt
> > > the user, you must pass in the class parameters
> > >
> > > 章国东 <[email protected]> 于2019年1月9日周三 上午11:48写道:
> > >
> > > > 新版本还是有问题,在没有传递class参数时,重载还是会调错方法
> > > > ((JSONObject) arg).toJavaObject(type);
> > > > 这句话不管属性是否匹配,都能转换成功,没有太大的意义。
> > > > 我在DemoService添加一个方法
> > > > String getPerson(Yee yee);
> > > >
> > > > public class Yee implements Serializable {
> > > >     private String address;
> > > >
> > > >     public String getAddress() {
> > > >         return address;
> > > >     }
> > > >
> > > >     public void setAddress(String address) {
> > > >         this.address = address;
> > > >     }
> > > > }
> > > >
> > > > UT:
> > > > @Test
> > > >     public void testInvokeMultiJsonParamMethod2() throws
> > > RemotingException
> > > > {
> > > >         mockChannel = mock(Channel.class);
> > > >
> > >  given(mockChannel.getAttribute("telnet.service")).willReturn(null);
> > > >
> > > > given(mockChannel.getLocalAddress()).willReturn(NetUtils.toAddress("
> > > > 127.0.0.1:5555"));
> > > >
> > > > given(mockChannel.getRemoteAddress()).willReturn(NetUtils.toAddress("
> > > > 127.0.0.1:20886"));
> > > >
> > > >         ProviderModel providerModel = new
> > > >
> > ProviderModel("org.apache.dubbo.rpc.protocol.dubbo.support.DemoService",
> > > > new DemoServiceImpl(), DemoService.class);
> > > >
> > > >
> > >
> >
> ApplicationModel.initProviderModel("org.apache.dubbo.rpc.protocol.dubbo.support.DemoService",
> > > > providerModel);
> > > >         String param = "{\"address\":\"Dubbo\"}";
> > > >         String result = invoke.telnet(mockChannel, "getPerson(" +
> > param +
> > > > ")");
> > > >         assertTrue(result.contains("result: \"Dubbo"));
> > > >     }
> > > > 无法测试成功,他会调用String getPerson(Man man);方法
> > > >
> > > > LiZhenNet <[email protected]> 于2019年1月9日周三 上午11:24写道:
> > > >
> > > >> Yes ,I have added UT to cover this。
> > > >>
> > > >> Ian Luo <[email protected]> 于2019年1月9日周三 上午10:57写道:
> > > >>
> > > >> > I see. I have not considered the overridden scenario carefully.
> > Thanks
> > > >> for
> > > >> > your clarification. BTW, do we have the corresponding unit test to
> > > cover
> > > >> > this?
> > > >> >
> > > >> > Thanks,
> > > >> > -Ian.
> > > >> >
> > > >> >
> > > >> > On Tue, Jan 8, 2019 at 5:50 PM LiZhenNet <[email protected]>
> > > wrote:
> > > >> >
> > > >> > > @beiwei30
> > > >> > >
> > > >> > > I think your suggestion maybe not right, I have added a comment
> > > >> ,please
> > > >> > > take a  look.
> > > >> > >
> > > >> >
> > > >>
> > > >
> > >
> >
>

Reply via email to