

In Java erfahren Sie, wie Sie einen Objektwert in ein neues Objekt kopieren und die Daten ändern, ohne dass sich dies auf eine andere Referenzvariable auswirkt
Ich muss den Anfragetext mit maskierten Daten in der Konsole ausdrucken. Daher möchte ich das Anforderungsobjekt, das zum Drucken auf der Konsole maskiert ist, von dem Anforderungsobjekt trennen, das ohne Maskierung für Unternehmen verwendet wird.
Also habe ich das Anforderungsobjekt (Underwriterequest Request) in ein neues Objekt (Underwriterequest Requestmasking) geklont und dann Methoden zum Maskieren der Daten verwendet.
Aber wenn ich die Abschirmungs-ID auf ein neues Objekt setze, verfügt das Referenzobjekt (Underwriter-Anforderungsanforderung) auch über eine Abschirmung.
Ich möchte nicht blockieren (Underwriter-Anfrage-Anfrage), da dieses Objekt in der Geschäftslogik verwendet werden muss.
Warum wirkt es sich auf das Referenzobjekt aus? Wie kann ich Daten maskieren, ohne das Referenzobjekt zu beeinträchtigen?
Vielen Dank.
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(); } }
Ich verwende die Methode clone(), um den Objektwert in ein neues Objekt zu kopieren. Denn ich denke, wenn ich die Daten im neuen Objekt ändere, hat das keine Auswirkungen auf das Referenzobjekt. https://www.geeksforgeeks.org/clone-method-in-java-2/
Richtige Antwort
Anscheinend verwenden Sie das SpringBoot-Framework. Sie können sich die Methode BeanUtils.copyProperties(); ansehen. Diese Methode weist dem ersten und dem zweiten Objekt durch Reflexion dieselben Eigenschaften zu. Die von Dir genannten Probleme wird es nicht geben
Das obige ist der detaillierte Inhalt vonIn Java erfahren Sie, wie Sie einen Objektwert in ein neues Objekt kopieren und die Daten ändern, ohne dass sich dies auf eine andere Referenzvariable auswirkt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

