前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获取类中所有的bean

获取类中所有的bean

作者头像
阿超
发布2022-08-17 20:06:20
9470
发布2022-08-17 20:06:20
举报
文章被收录于专栏:快乐阿超快乐阿超

生命中有很多东西,能忘掉的叫过去,忘不掉的叫记忆。一个人的寂寞,有时候,很难隐藏得太久,时间太久了,人就会变得沉默,那时候,有些往日的情怀,就找不回来了。或许,当一段不知疲倦的旅途结束,只有站在终点的人,才会感觉到累。其实我一直都明白,能一直和一人做伴,实属不易。——海子

使用hutool实现

代码语言:javascript
复制
package com.ruben.simplescaffold;


import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ClassUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.TypeUtil;
import com.ruben.simplescaffold.entity.UserDetail;
import org.junit.jupiter.api.Test;

import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * 测试类
 *
 * @author <achao1441470436@gmail.com>
 * @since 2021/7/11 0011 18:09
 */
public class Tests {

    @Test
    void contextLoads() {
        final List<Class<?>> collect = getJavaBeans(UserDetail.class);
        collect.forEach(System.out::println);
    }

    private List<Class<?>> getJavaBeans(Class<?> type) {
        return Arrays.stream(ReflectUtil.getFields(type)).map(field -> {
            if (BeanUtil.isBean(field.getType())) {
                return field.getType();
            } else if (Collection.class.isAssignableFrom(field.getType())) {
                Type argument = TypeUtil.getTypeArgument(field.getGenericType());
                Class<Object> aClass = ClassUtil.loadClass(argument.getTypeName());
                if (BeanUtil.isBean(aClass)) {
                    return aClass;
                }
            }
            return null;
        }).filter(Objects::nonNull).collect(Collectors.toList());
    }


}

运行结果:

image-20210901201408697
image-20210901201408697

对应这两个类

image-20210901201436416
image-20210901201436416
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档