有个需求是这样:
1、开发个webservice服务端的接口
2、因为需要传入的参数过多,因此想到用map来解决。把需要的参数属性名定义为map的key,而value才是我需要的值。比如
正常情况是这样定义: public void method(String name,String password);
但是我现在要这样定义: public void method(Map<String,String> parm);
此map参数的key我只能允许客户定义为name,password.而value当然可以是任意String。
3、基于此最好是用枚举来定义:public enum MemberDetail {
name,password
} 因此我需要的接口就定义为
public void method(Map<MemberDetail ,String> parm);
但是这样出问题了。。测试的时候发现客户端传入的map参数的key完全没有被枚举给控制。我要怎么才能使客户只能穿服务端定义的枚举类型呢?
1、开发个webservice服务端的接口
2、因为需要传入的参数过多,因此想到用map来解决。把需要的参数属性名定义为map的key,而value才是我需要的值。比如
正常情况是这样定义: public void method(String name,String password);
但是我现在要这样定义: public void method(Map<String,String> parm);
此map参数的key我只能允许客户定义为name,password.而value当然可以是任意String。
3、基于此最好是用枚举来定义:public enum MemberDetail {
name,password
} 因此我需要的接口就定义为
public void method(Map<MemberDetail ,String> parm);
但是这样出问题了。。测试的时候发现客户端传入的map参数的key完全没有被枚举给控制。我要怎么才能使客户只能穿服务端定义的枚举类型呢?
解决方案 »
- JAVA生成对象new方法一个不理解的地方
- 使用pureLoad工具进行压力测试
- 框架整合的问题.
- 求XFIRE 响应模式
- JDBC连接MYSQL问题.
- org.hibernate.Query.executeQuery()执行update语句时如何插入null?
- 求BEA WebLogic Server宝典的代码,谢谢
- JBoss有什么图形化管理工具? 传说中的8082端口怎么在新版中没了?
- java+xml异构数据交换系统实现方案,大家来提提意见
- 用cookie模拟登录
- sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)错误异常
- 后台调用前台的JavaScript代码的问题
所谓协议,肯定要定义一些标准值。
因为这里的key都是数据库对应的字段。需要insert进去。
并且字段很多,差不多有50来个,又有30来个字段是必须的。因此我只想到这个方法来控制了。我现在就是不知道我这样是否可行。
做成一个bean来传不是更清晰
完全可以实现。但是这样有个缺点,我不是用的hibernate,用的jdbc,这样我还是得去拼50来个字段。从代码上来说不是很完美哦。
不过谢谢你提供的思路,硬是没办法我就按你的来咯
反正是bean,里面的成员变量不就是你的数据库名-值对
反射出一个成员变量的名称,对sql里的同名字段赋值,一个循环就搞定了
由于绑定的方式比较多,建议去百度下资料,毕竟不常用,建议你还是拼成xml样式的string来做参数,通用,简单。