当前位置: 首页 > 知识库问答 >
问题:

CodeModel修改器顺序

淳于升
2023-03-14

使用CodeModel,有没有一种方法可以控制修饰符的顺序?特别是在创建字段时。

https://sonar43.spring.io/rules/show/squid:modifiersordercheck?layout=false http://checkstyle.sourceforge.net/config_modifier.html

修饰符应按以下顺序出现:

  1. 批注
  2. 公用
  3. 受保护
  4. 专用
  5. 摘要
  6. 静态
  7. 最终
  8. 瞬态
  9. 易失
  10. 已同步
  11. 本机
  12. stricTFP

示例代码:

// Create field for serialVersionUID
JFieldVar field1 = newClass.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL, long.class, "serialVersionUID");
field1.init(JExpr.lit(1L));

生成以下未按建议顺序执行的修饰符:

private final static long serialVersionUID = 1L;

共有1个答案

楮阳
2023-03-14

这是不可能的*。即使是糟糕的反射黑客也做不到。修饰符的顺序由jmods#generate(JFormatter)方法(位于底部)确定。不幸的是,jmods类只有一个显式声明为private的构造函数

*当然,您可以添加另一层检测、字节码程序集或类似的内容,或者只是创建一个修改版本的CodeModel供本地使用。但没有一种非侵入性的方法可以更改修饰符顺序。

 类似资料:
  • set() 新增数据时触发 'use strict'; const moment = require('moment') const bcrypt = require('bcryptjs') module.exports = app => { const { STRING, INTEGER, DATE } = app.Sequelize; const User = app.mo

  • 本文档大量借鉴于 LearnKu 十分感谢 LearnKu 对 PHP 社区做出的贡献。 当你在模型实例中获取或设置某些属性值的时候,访问器和修改器允许你对模型属性值进行格式化。 访问器 & 修改器 定义一个访问器 若要定义一个访问器, 则需在模型上创建一个 getFooAttribute 方法,要访问的 Foo 字段需使用「驼峰式」命名。 在这个示例中,我们将为 first_name 属性定义一

  • 修改器 和获取器相反,修改器的主要作用是对模型设置的数据对象值进行处理。 修改器方法的命名规范为: setFieldNameAttr 修改器的使用场景和读取器类似: 时间日期字段的转换写入; 集合或枚举类型的写入; 数字状态字段的写入; 某个字段涉及其它字段的条件或者组合写入; 定义了修改器之后会在下列情况下触发: 模型对象赋值; 调用模型的data方法,并且第二个参数传入true; 调用模型的s

  • 每次我用Java编写的方法的关键字都比多,每次我都用另一种方式编写它。有时“”有时“”等。 这些关键字的最佳顺序(最佳实践)是什么? [][][][][]???

  • 简介 当你在 Eloquent 模型实例中获取或设置某些属性值的时候,访问器和修改器允许你对 Eloquent 属性值进行格式化。例如,你可能想要使用 Laravel 加密器 来加密一个即将被保存在数据库中的值,而从 Eloquent 模型访问该属性时自动解密其值。 除了自定义访问器和修改器之外,Eloquent 也会自动将日期字段类型转换成 Carbon 实例或将 文本字段类型转换成JSON。

  • 问题内容: 在以最小方式处理XML时,有什么方法可以保留属性的原始顺序吗? 说我有: 当我用最小修改它时,属性按字母顺序重新排列为蓝色,绿色和红色。我想保留原始顺序。 我通过遍历返回的元素来处理文件,然后进行这样的分配。 问题答案: 在以最小方式处理XML时,有什么方法可以保留属性的原始顺序吗? 如果为“ no”,则用于存储属性的数据类型是无序字典。pxdom可以做到,尽管它的速度要慢得多。