如何只傳回實體類別中的部分欄位
在實體類別上新增註解
@JsonInclude(JsonInclude.Include.NON_EMPTY)
表示實體類別中為null,空字串,空集合陣列等內容不會被序列化,即不會傳回欄位和值。
以下為對註解所有取值的簡介
ALWAYS // 默认策略,任何情况都执行序列化 NON_NULL // 非空 NON_ABSENT // null的不会序列化,但如果类型是AtomicReference,依然会被序列化 NON_EMPTY // null、集合数组等没有内容、空字符串等,都不会被序列化 NON_DEFAULT // 如果字段是默认值,就不会被序列化 CUSTOM // 此时要指定valueFilter属性,该属性对应一个类,用来自定义判断被JsonInclude修饰的字段是否序列化 USE_DEFAULTS // 当JsonInclude在类和属性上都有时,优先使用属性上的注解,此时如果在序列化的get方法上使用了JsonInclude,并设置为USE_DEFAULTS,就会使用类注解的设置
java動態新增實體類別欄位並傳回給前端
工具類別
package com.bless.wms.utils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.PropertyUtilsBean; import org.springframework.cglib.beans.BeanGenerator; import org.springframework.cglib.beans.BeanMap; import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; /** * 动态添加实体类字段 */ @Slf4j public final class PropertyAppender { private static final class DynamicBean { private Object target; private BeanMap beanMap; private DynamicBean(Class superclass, Map<String, Class> propertyMap) { this.target = generateBean(superclass, propertyMap); this.beanMap = BeanMap.create(this.target); } private void setValue(String property, Object value) { beanMap.put(property, value); } private Object getValue(String property) { return beanMap.get(property); } private Object getTarget() { return this.target; } /** * 根据属性生成对象 */ private Object generateBean(Class superclass, Map<String, Class> propertyMap) { BeanGenerator generator = new BeanGenerator(); if (null != superclass) { generator.setSuperclass(superclass); } BeanGenerator.addProperties(generator, propertyMap); return generator.create(); } } public static Object generate(Object dest, Map<String, Object> newValueMap) throws InvocationTargetException, IllegalAccessException { PropertyUtilsBean propertyUtilsBean = new PropertyUtilsBean(); //1.获取原对象的字段数组 PropertyDescriptor[] descriptorArr = propertyUtilsBean.getPropertyDescriptors(dest); //2.遍历原对象的字段数组,并将其封装到Map Map<String, Class> oldKeyMap = new HashMap<>(); for (PropertyDescriptor it : descriptorArr) { if (!"class".equalsIgnoreCase(it.getName())) { oldKeyMap.put(it.getName(), it.getPropertyType()); newValueMap.put(it.getName(), it.getReadMethod().invoke(dest)); } } //3.将扩展字段Map合并到原字段Map中 newValueMap.forEach((k, v) -> oldKeyMap.put(k, v.getClass())); //4.根据新的字段组合生成子类对象 DynamicBean dynamicBean = new DynamicBean(dest.getClass(), oldKeyMap); //5.放回合并后的属性集合 newValueMap.forEach((k, v) -> { try { dynamicBean.setValue(k, v); } catch (Exception e) { log.error("动态添加字段【值】出错", e); } }); return dynamicBean.getTarget(); } }
呼叫
前端介面呼叫測試
#備註:前端表格直接for迴圈動態渲染就OK了
以上是java只傳回實體類別中的部分欄位問題如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JVM通過JavaNativeInterface(JNI)和Java標準庫處理操作系統API差異:1.JNI允許Java代碼調用本地代碼,直接與操作系統API交互。 2.Java標準庫提供統一API,內部映射到不同操作系統API,確保代碼跨平台運行。

modularitydoesnotdirectlyaffectJava'splatformindependence.Java'splatformindependenceismaintainedbytheJVM,butmodularityinfluencesapplicationstructureandmanagement,indirectlyimpactingplatformindependence.1)Deploymentanddistributionbecomemoreefficientwi

BytecodeinJavaistheintermediaterepresentationthatenablesplatformindependence.1)Javacodeiscompiledintobytecodestoredin.classfiles.2)TheJVMinterpretsorcompilesthisbytecodeintomachinecodeatruntime,allowingthesamebytecodetorunonanydevicewithaJVM,thusfulf

javaachievesplatformIndependencEthroughThoJavavIrtualMachine(JVM),wodecutesbytecodeonyanydenanydevicewithajvm.1)javacodeiscompiledintobytecode.2)

JavaGUI開發中的平台獨立性面臨挑戰,但可以通過使用Swing、JavaFX,統一外觀,性能優化,第三方庫和跨平台測試來應對。 JavaGUI開發依賴於AWT和Swing,Swing旨在提供跨平台一致性,但實際效果因操作系統不同而異。解決方案包括:1)使用Swing和JavaFX作為GUI工具包;2)通過UIManager.setLookAndFeel()統一外觀;3)優化性能以適應不同平台;4)使用如ApachePivot或SWT的第三方庫;5)進行跨平台測試以確保一致性。

JavadevelovermentIrelyPlatForm-DeTueTososeVeralFactors.1)JVMVariationsAffectPerformanceNandBehaviorAcroSsdifferentos.2)Nativelibrariesviajnijniiniininiinniinindrododerplatefform.3)

Java代碼在不同平台上運行時會有性能差異。 1)JVM的實現和優化策略不同,如OracleJDK和OpenJDK。 2)操作系統的特性,如內存管理和線程調度,也會影響性能。 3)可以通過選擇合適的JVM、調整JVM參數和代碼優化來提升性能。

Java'splatFormentenceHaslimitations不包括PerformanceOverhead,versionCompatibilityIsissues,挑戰WithnativelibraryIntegration,Platform-SpecificFeatures,andjvminstallation/jvminstallation/jvmintenance/jeartenance.therefactorscomplicatorscomplicatethe“ writeOnce”


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。