我需要在控制台中打印带有屏蔽数据的请求正文。因此,我希望将用于打印到控制台的屏蔽的请求对象与用于业务而不屏蔽的请求对象分开。
因此,我将请求对象(underwriterequest request)克隆到新对象(underwriterequest requestmasking),然后使用方法来屏蔽数据。
但是当我将屏蔽身份证设置为 new object 时,引用对象(underwriterequest 请求)也具有屏蔽。
我不想屏蔽(underwriterequest 请求),因为该对象必须在业务逻辑中使用。
为什么会对参考对象产生影响? 如何屏蔽数据而不影响参考对象?
谢谢。
public @ResponseBody ResponseEntity<UnderwriteResponse> execute(@RequestBody UnderwriteRequest request) { UnderwriteRequest requestMasking = maskingData(request); } public static UnderwriteRequest maskingData(UnderwriteRequest request) throws CloneNotSupportedException { UnderwriteRequest requestMasking = (UnderwriteRequest) request.clone(); try { if(request != null) { if(request.getRequestBody().getPersonalData().getIdCard() != null && !request.getRequestBody().getPersonalData().getIdCard().isEmpty()) { maskIdCard(requestMasking, request); } }catch (Exception e) { log.info(e); } return requestMasking; } public static void maskIdCard(UnderwriteRequest requestMasking, UnderwriteRequest request) { String maskChar = "X"; String maskString = StringUtils.repeat( maskChar, 9); String idcard = request.getRequestBody().getPersonalData().getIdCard(); requestMasking.getRequestBody().getPersonalData().setIdCard(StringUtils.overlay(idcard, maskString, 0, 9)); } @Getter @Setter public class UnderwriteRequest implements Cloneable{ private RequestHeader requestHeader; private RequestBrmsBody requestBrmsBody; private RequestBody requestBody; private RESPONSE_STATUS status = RESPONSE_STATUS.FAILED; private String message; @Override public Object clone() throws CloneNotSupportedException { // TODO Auto-generated method stub return super.clone(); } }
我使用clone()方法将对象值复制到新对象。 因为我认为当我更改新对象中的数据时,不会影响引用对象。https://www.geeksforgeeks.org/clone-method-in-java-2/
正确答案
看来您正在使用SpringBoot框架。你可以看一下 BeanUtils.copyProperties();方法。该方法通过反射为第一个对象和第二个对象分配相同的属性。不会有你提到的问题
以上是在Java中,如何将对象值复制到新对象并更改数据而不影响另一个引用变量的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版
视觉化网页开发工具