Dieser Artikel ist eine detaillierte Analyse und Einführung in die Java-Objektreplikation.
Java selbst bietet die Möglichkeit, Objekte zu kopieren. Es gibt eine Klonmethode. Die Objektklasse ist eine geschützte Methode. Sie müssen diese Methode auch als öffentlichen Typ deklarieren, um die Fähigkeit zum Kopieren von Objekten bereitzustellen Die Effizienz nativer Methoden ist viel höher als die nicht-nativer Methoden in Java. Wenn Sie mehr Wert auf die Leistung legen, sollten Sie diese Methode zuerst in Betracht ziehen. Es gibt viele Beispiele für diese Art des Kopierens, daher habe ich gewonnen. Ich gehe hier nicht näher darauf ein. Der Reflexionsmechanismus ist möglicherweise weniger effizient als clone() und unterstützt kein tiefes Kopieren und Kopieren von Sammlungstypen verbessert. Das Folgende ist der Code zum Kopieren:
private <T> T getBean(T TargetBean, T SourceBean) { if (TargetBean== null) return null; Field[] tFields = TargetBean.getClass().getDeclaredFields(); Field[] sFields = SourceBean.getClass().getDeclaredFields(); try { for (Field field : tFields ) { String fieldName = field.getName(); if (fieldName.equals("serialVersionUID")) continue; if (field.getType() == Map.class) continue; if (field.getType() == Set.class) continue; if (field.getType() == List.class) continue; for (Field sField : sFields) { if(!sField .getName().equals(fieldName)){ continue; } Class type = field.getType(); String setName = getSetMethodName(fieldName); Method tMethod = TargetBean.getClass().getMethod(setName, new Class[]{type}); String getName = getGetMethodName(fieldName); Method sMethod = SourceBean.getClass().getMethod(getName, null); Object setterValue = voMethod.invoke(SourceBean, null); tMethod.invoke(TargetBean, new Object[]{setterValue}); } } } catch (Exception e) { throw new Exception("设置参数信息发生异常", e); } return TargetBean;}
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für das Kopieren von Java-Objekten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!