<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      java 8 利用lambda 獲取 記錄類(get/set) field 上面 注解

      package tianrun.ziguan.api.center.alert.util;
      
      import com.baomidou.mybatisplus.annotation.TableField;
      
      import java.io.*;
      import java.lang.annotation.Annotation;
      import java.lang.invoke.SerializedLambda;
      import java.lang.reflect.Field;
      import java.lang.reflect.Method;
      import java.util.function.Function;
      
      /**
       * @author: Yh
       * @date: 2023/11/30 15:37
       */
      public class ClassUtil {
      
          public static String column(FF<?, ?> func) {
              TableField o = resolveLambdaProxyFieldAnnotation(func, TableField.class);
              if (o == null) {
                  return "";
              }
              return o.value();
          }
      
          public static <T> T resolveLambdaProxyFieldAnnotation(FF<?, ?> func, Class<T> an) {
              SerializedLambda resolve = resolve(func);
              final String implMethodName = resolve.getImplMethodName().toUpperCase();
              try {
                  Class<?> implClass = Class.forName(resolve.getImplClass().replaceAll("/", "."));
                  final Field[] declaredFields = implClass.getDeclaredFields();
                  for (Field declaredField : declaredFields) {
                      if (implMethodName.endsWith(declaredField.getName().toUpperCase())) {
                          final Annotation[] annotations = declaredField.getAnnotations();
                          for (Annotation annotation : annotations) {
                              if (an.isInstance(annotation)) {
                                  return an.cast(annotation);
                              }
                          }
                      }
                  }
                  final Field[] fields = implClass.getFields();
                  for (Field field : fields) {
                      if (implMethodName.endsWith(field.getName().toUpperCase())) {
                          final Annotation[] annotations = field.getAnnotations();
                          for (Annotation annotation : annotations) {
                              if (an.isInstance(annotation)) {
                                  return an.cast(annotation);
                              }
                          }
                      }
                  }
              } catch (ClassNotFoundException e) {
                  throw new RuntimeException(e);
              }
              return null;
          }
      
      
          public static byte[] serialize(Object object) {
              if (object == null) {
                  return null;
              }
              ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
              try {
                  ObjectOutputStream oos = new ObjectOutputStream(baos);
                  oos.writeObject(object);
                  oos.flush();
              } catch (IOException ex) {
                  throw new IllegalArgumentException("Failed to serialize object of type: " + object.getClass(), ex);
              }
              return baos.toByteArray();
          }
      
          public static SerializedLambda resolve(FF<?, ?> lambda) {
              try (ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(serialize(lambda))) {
                  @Override
                  protected Class<?> resolveClass(ObjectStreamClass objectStreamClass) throws IOException, ClassNotFoundException {
                      return super.resolveClass(objectStreamClass);
                  }
              }) {
                  final Object o = objIn.readObject();
                  return getSerializedLambda((Serializable) o);
              } catch (ClassNotFoundException | IOException e) {
                  throw new IllegalArgumentException();
              } catch (Exception e) {
                  throw new RuntimeException(e);
              }
          }
      
          public static SerializedLambda getSerializedLambda(Serializable serializable) throws Exception {
              Method writeReplaceMethod = serializable.getClass().getDeclaredMethod("writeReplace");
              writeReplaceMethod.setAccessible(true);
              return (SerializedLambda) writeReplaceMethod.invoke(serializable);
          }
      
          public interface FF<T, R> extends Function<T, R>, Serializable {
          }
      }
      
      
      
      posted @ 2023-11-30 16:43  _Y_h  閱讀(85)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 丰满少妇在线观看网站| 四虎永久免费精品视频| 影音先锋AV成人资源站在线播放| 亚洲精品~无码抽插| 高清有码国产一区二区| 蓝山县| 加勒比无码人妻东京热| 国产a在视频线精品视频下载| 国产精品午夜福利在线观看| 亚洲精品漫画一二三区| 久久精品国产国产精品四凭| 亚洲欧美人成网站在线观看看| 国产成人午夜在线视频极速观看| 阿克陶县| 18女下面流水不遮图| 久久精品不卡一区二区| 爆乳女仆高潮在线观看| 国产一区一一区高清不卡| 国产自产av一区二区三区性色| 国产精品v欧美精品∨日韩| 国产成人a在线观看视频免费| 91精品国产老熟女在线| 少妇精品导航| 国产360激情盗摄全集| 欧美日产国产精品| 欧美不卡无线在线一二三区观| 日韩欧美精品suv| 亚洲国产午夜精品理论片妓女| 精品一区二区三区在线播放视频| 97人妻中文字幕总站| 成人午夜电影福利免费| 色香欲天天影视综合网| 亚洲日本精品一区二区| 精品视频福利| 少妇人妻偷人偷人精品| 日本熟妇乱一区二区三区| 国产午夜精品无码一区二区| 亚洲色大成成人网站久久| 欧美成人看片一区二区三区尤物| 亚洲一区二区三级av| 国产精品国产三级国产试看|