Dozer 映射类级别是可访问的

2023-12-30

我正在使用推土机框架来克隆我的对象。我希望推土机框架在不使用 getter 和 setter 的情况下克隆数据,为此我在类级别设置 is-accessible 属性。但这似乎不起作用。当我在字段级别设置 is-accessible 时,它​​工作正常。

BeanMappingBuilder builder = new BeanMappingBuilder(){

            @Override
            protected void configure() {
                mapping(type(A.class).accessible(true),type(A.class).accessible(true)).exclude("field1").exclude("field2");
                            }

        };
        m.addMapping(builder);

我想要使​​用 is-accessible 的原因是因为我在类 A 中有一个字段声明为

private SortedSet<String> foo;

但吸气剂就像

public Collection<String> getFoo()
{
      return foo;
}

我认为推土机无法找到 getter,因为它为字段 foo 返回不同的类型。有人可以告诉我这是推土机中的错误还是我做错了什么?

在此先感谢您的帮助!!


请注意,如果 Dozer 在源类中找不到 getter 并在目标类中找不到 setter,则会抛出错误。

Afaik,数据类型的变化应该不重要,因为它使用反射。

要回答您的第一个问题,与其在类级别设置 is-accessible ,不如仅公开您需要的字段风险较小。例如:

 DozerBeanMapper dozerBeanMapper = new DozerBeanMapper();
        dozerBeanMapper.addMapping(getBeanMappingBuilder("fieldName",
                                                         SourceClassName.class,
                                                         DestClassName.class));


protected BeanMappingBuilder getBeanMappingBuilder(final String fieldName,
                                                       final Class typeA,
                                                       final Class typeB) {
        return new BeanMappingBuilder() {
            @Override
            protected void configure() {
                mapping(typeA
                    , typeB).fields(
                    field(fieldName).accessible(true), field(fieldName).accessible(true));

            }
        };
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dozer 映射类级别是可访问的 的相关文章

随机推荐

  • 使用我自己的语料库而不是 movie_reviews 语料库在 NLTK 中进行分类

    我使用以下代码并得到它的形式在 NLTK Python 中使用电影评论语料库进行分类 https stackoverflow com questions 21107075 classification using movie review
  • 离子电容器删除 Android 构建的 REQUEST_INSTALL_PACKAGES 权限

    我们正在使用命令创建应用程序 ionic build configuration development ionic capacitor copy android no build npx cap open android 现在最新的 An
  • Android在LinearLayout中动态添加EditText

    我试图使用按钮在现有的 editText 字段下动态添加 editText 字段 目前按下按钮没有任何作用 这是我的代码 XML
  • 从值获取 R 表达式(类似于引用)

    假设我有一个值x它是某种 未知 类型 特别是 标量 向量或列表 我想得到代表这个值的 R 表达式 如果x 1那么这个函数应该简单地返回expression 1 For x c 1 2 这个函数应该返回expression c 1 2 The
  • .htaccess 重写规则,强制将 https 重定向到 http

    我有一个主域https www domain com or https domain com和通配符 DNS 类似https domain com index php name abcd强制重定向http abcd domain com但我
  • 为什么将队列实现为循环数组?

    当实现像队列这样的 FIFO 时 我的导师总是建议我们将其表示为循环数组而不是常规数组 为什么 是因为在后者中 我们最终会在数组中出现垃圾数据吗 如果您使用固定数量的阵列插槽 元素 则以圆形排列回收插槽会更容易 因为您不需要重新排序元素 每
  • 在 Python 桌面应用程序中安全分发 OAuth 2.0 client_secret

    我正在寻找一些有关如何设计和创建我自己的桌面应用程序 或已安装的应用程序 https developers google com identity protocols OAuth2 installed 在需要 OAuth 2 0 授权流到
  • 任务应用程序:compileDebugJavaWithJavac 失败

    当尝试在 Android 上运行我的 React Native 应用程序时 我收到此错误 失败 构建失败并出现异常 什么地方出了错 任务 react native firebase app compileDebugJavaWithJavac
  • Spring Kafka 错误处理 - v1.1.x

    如何处理错误处理春天卡夫卡 questions tagged spring kafka版本1 1 x 据我所知 它是在版本中引入的2 0 https github com spring projects spring kafka blob
  • Event.observe 'change' 事件在 IE 中没有被触发

    我用于更改选择菜单的原型事件侦听器未在 IE 中触发 Event observe use billing change Checkout getBillingData 这在 Firefox 中工作得很好 当然 但在 IE 中没有任何反应 当
  • 在抓取图像 src 上获取 base64 字符串

    我正在从网站上抓取图像 src 标题 价格等 但它给出了 base64 字符串来代替图像 src 当我将所有这些抓取的数据附加到 uri 时 它显示错误长 uri 如何减缓这个问题 如果您获得一个 base64 字符串作为 img src
  • 模板未在backbone.js中加载(TypeError:文本未定义)

    我在学主干 js http backbonejs org 我还处于起步阶段 我想通过添加模板下划线 http underscorejs org template模板方法 但它对我不起作用 我搜索了这个错误 但无法自行修复 如果没有显示模板
  • 除了请求许可之外,如何在不干扰当前前台进程的情况下获取 MediaProjectionManager?

    问题 我有一个屏幕截图应用程序 它使用浮动覆盖服务进行控件 并使用屏幕投射 API 媒体项目管理器来访问屏幕 有时 当设备内存不足时 Android 会重新启动服务 我就会丢失媒体投影 据我所知 重新获取新媒体投影的唯一方法是重新打开请求权
  • 添加了 ValidationContext 项的 MVC 和 EF 验证

    我有一个场景 我想将一个项目添加到 ValidationContext 并在 EF 触发的实体验证中检查它 我在向导中执行此操作 因此我只能在特定步骤上验证某些内容 如果有好的模式 请分享 问题在于 在控制器操作被击中之前 验证实际上被触发
  • Flutter Bloc 状态更改未使用 get_it 更新 UI

    我一直在结合使用本登录教程和 resocoder clean 架构教程来构建登录 身份验证功能 99 工作正常 但无法正确响应LoginButton被压 由于某种原因 当LoginBloc calls AuthenticationBloc
  • 如何检索 cl.exe 的路径?

    我想检索编译器的完整路径cl exe在 Visual Studio 中从程序中调用它 我们在注册表中是否有相应的密钥 怎么做 cl exe通常位于 VCINSTALLDIR bin VCINSTALLDIR默认情况下未设置环境变量 但在打开
  • 如何通过单击按钮更改文本颜色?

    我有如下文字 p strong em QUESTION WHAT IS YOUR NAME em strong p
  • 如何使用 bind_result 与 get_result 的示例

    我想看一个如何使用调用的示例bind result vs get result以及使用其中一种而不是另一种的目的是什么 还有使用每种方法的优点和缺点 使用这两种方法有什么限制 有什么区别吗 虽然这两种方法都适用 查询 当bind resul
  • 在单个查询中保存多行

    有没有办法让 cake 在单个查询中执行多行插入 而无需编写原始 SQL 来执行此操作 saveMany 和 saveAssociated 选项只会在单个事务中保存多行 但该事务包含多个插入语句 因此这些方法显然不是编写重型应用程序的解决方
  • Dozer 映射类级别是可访问的

    我正在使用推土机框架来克隆我的对象 我希望推土机框架在不使用 getter 和 setter 的情况下克隆数据 为此我在类级别设置 is accessible 属性 但这似乎不起作用 当我在字段级别设置 is accessible 时 它