工具类
import cn. hutool. core. convert. Convert ;
import cn. hutool. core. text. CharSequenceUtil ; import java. lang. reflect. Field ;
import java. lang. reflect. Modifier ;
import java. util. ArrayList ;
import java. util. List ;
import java. util. Map ;
public class RC { public interface ConverterName { String cv ( String name) ; } public static < T > List < T > toCamelCaseBO ( List < Map < String , Object > > maps, Class < T > clazz) { return toBO ( maps, clazz, name -> name) ; } public static < T > List < T > toUnderlineCaseBO ( List < Map < String , Object > > maps, Class < T > clazz) { return toBO ( maps, clazz, CharSequenceUtil :: toUnderlineCase ) ; } public static < T > List < T > toBigUnderlineCaseBO ( List < Map < String , Object > > maps, Class < T > clazz) { return toBO ( maps, clazz, name -> CharSequenceUtil . swapCase ( CharSequenceUtil . toUnderlineCase ( name) ) ) ; } public static < T > List < T > toBO ( List < Map < String , Object > > maps, Class < T > clazz, ConverterName converter) { List < T > list = new ArrayList < > ( maps. size ( ) ) ; try { for ( Map < String , Object > map : maps) { T instance = clazz. getDeclaredConstructor ( ) . newInstance ( ) ; Class < ? super T > superclass = clazz; do { for ( Field field : superclass. getDeclaredFields ( ) ) { if ( Modifier . isFinal ( field. getModifiers ( ) ) ) continue ; field. setAccessible ( true ) ; Object object = Convert . convert ( field. getType ( ) , map. get ( converter. cv ( field. getName ( ) ) ) , null ) ; field. set ( instance, object) ; } superclass = superclass. getSuperclass ( ) ; } while ( ! superclass. equals ( Object . class ) ) ; list. add ( instance) ; } } catch ( Exception e) { throw new RuntimeException ( e) ; } return list; }
}
使用
Page < Map < String , Object > > page = viewStorageOutDao. findPage ( bo, pageable) ;
List < Map < String , Object > > content = page. getContent ( ) ;
List < ViewStorageOutDTO > dto = RC . toBigUnderlineCaseBO ( content, ViewStorageOutDTO . class ) ;