java有可能在运行时改变变量类型吗

java有可能在运行时改变变量类型吗

浮生未歇 发布于 2021-11-30 字数 502 浏览 787 回复 10

有一个user对象

Public class User{
  private int id;
  private String name;
}

现在要把该对象中的id加密传到前台,请问有什么好的方法吗?因为目前系统加密的方式只能针对String类型。因为项目中多处用到了user且项目一期已完成,如果直接改int为String(在controller层改)的话会增加很多工作量。

目前想法:通过反射在运行时改变id类型为String,并且加密,不知道是否可行。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

明媚如初 2021-12-01 10 楼

引用来自“j_ke”的评论

如果是用的hibernate的话,在bean里面新增一个String类型的变量比如叫encodeId,前面加上@Transient注解 标注这是一个即时变量,不映射数据库表字段,然后生成相应的getter和setter方法,把id的值转成String类型赋给encodeId,加密传到前台处理就可以了...

飘然心甜 2021-12-01 9 楼

如果是用的hibernate的话,在bean里面新增一个String类型的变量比如叫encodeId,前面加上@Transient注解 标注这是一个即时变量,不映射数据库表字段,然后生成相应的getter和setter方法,把id的值转成String类型赋给encodeId,加密传到前台处理就可以了...

南汐寒笙箫 2021-12-01 8 楼

写个Filter

柒夜笙歌凉 2021-12-01 7 楼

1.eclipse 搜索后可以一次性替换所有搜索内容

2.动态代理

水水月牙 2021-12-01 6 楼

加密(String.valueOf(id))

樱花落人离去 2021-12-01 5 楼

其实应该写成对象Integer类型我觉得。

等风来 2021-12-01 4 楼

引用来自“茶壶”的评论

只是传的时候才加密么,那就再加一个string型的id,或者扩张个子类在子类里作呗。

残花月 2021-12-01 3 楼

如果这样的id有很多,那就不是int型了,而是一个类型,这个类型能提供原始的int id和string型的加密id,由于保密,在向外传客户端时,可将原始的int id抹掉。

最偏执的依靠 2021-12-01 2 楼

引用来自“茶壶”的评论

只是传的时候才加密么,那就再加一个string型的id,或者扩张个子类在子类里作呗。

回眸一笑 2021-11-30 1 楼

突然发现我们公司的架构还是很吊的,没有M只有VC,一个类可以塞所有的东西,int 塞进去,String取出来,娃哈哈