-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
接口方法参数List<User>,调用后,后端变成了List<hashMap>了,导致类型不对报错,不知道什么原因? #25
Comments
@15168326318 转换时 , 如果不是翻译师生成的对象(如:list ,) 会直接把参数返回. 所以new user 会处理错误.. |
@15168326318 我来定位下。 |
或者这种方式 我们提倡的最佳实践是单参数. 这样能避免很多问题.. |
@creasy2010 你们应该按alibaba的dubbo支持的参数来实现,他们是没限制的。 微服务dubbo不太可能按你们的限制来做的,对吧。 |
@15168326318 是的,只是建议; |
|
这是 Js-to-java模块的逻辑? |
@creasy2010 是的。应该阔以哦 |
你看的真仔细,, 哈哈, 上次跟胡峰讨论过这件事, 我把讨论的内容和例子在这里阐明下... 转换基本类型数据示例翻译师其实做了两件事,
而此issue中一直就是围绕2讨论, 因为针对java的基本类型, 我们并没有生成转换代码,需要手工去写hession.js识别的结构; 我们可以在argumentMap 方法中写转换的逻辑 .
export const DemoProviderWrapper = {
sayHello: argumentMap,
test: argumentMap,
echo: argumentMap,
getUserInfo: argumentMap,
}; 你上面的例子伪代码如下: export const DemoProviderWrapper = {
�getUserList:(userList:Array<User>)=>{
// 注: 转换的逻辑是自动生成的
// TODO null undefinded的情况还要排除
return java('java.util.List',userList.map(user=>user.__fields2java()));
},
}; 但是 遇到java多态 就变得麻烦了... 这也这是为什么现在没有做这一块... 为什么没有做估算下. 上面的解决方案能解决97%的场景, 但碰到java多态就会被"破功"了.. 尤其是参数类型不能通过次序+类型来判断的情况 , |
建议把这个场景放在demo里,一个上午老泪纵横 T T |
1.后端方法
2.ts文件如下:
3.前端调用:
4.结果是List,而不是参数类型List.所以导致类型转换报错。而且bigDecimal值也不对:100.06变成1了
The text was updated successfully, but these errors were encountered: