Java 代码模型修饰符顺序

Java 代码模型修饰符顺序,java,sonarqube,modifier,Java,Sonarqube,Modifier,使用CodeModel,是否有方法控制修改器的顺序? 特别是在创建字段时 CodeModel似乎有自己的修饰符顺序定义,与Java语言规范和SonarQube和CheckStyle等产品的定义不同: 修改器应按以下顺序显示: 注释 公开的 保护 私人的 摘要 静止的 决赛 短暂的 易变的 同步的 土生土长的 strictfp 此示例代码: // Create field for serialVersionUID JFieldVar field1 = newClass.field(JMod.P

使用CodeModel,是否有方法控制修改器的顺序? 特别是在创建字段时

CodeModel似乎有自己的修饰符顺序定义,与Java语言规范和SonarQube和CheckStyle等产品的定义不同:

修改器应按以下顺序显示:

  • 注释
  • 公开的
  • 保护
  • 私人的
  • 摘要
  • 静止的
  • 决赛
  • 短暂的
  • 易变的
  • 同步的
  • 土生土长的
  • 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;
    

    这是不可能的*。即使是讨厌的反射黑客也做不到。修改器的顺序由方法决定(在底部)。不幸的是,
    JMods
    类只有一个显式声明为
    private
    的构造函数



    *当然,您可以添加另一层插装、字节码汇编或类似的工具,或者只创建一个代码模型的修改版本供本地使用。但是没有非侵入性的方法来更改修饰符顺序。

    这是不可能的*。即使是讨厌的反射黑客也做不到。修改器的顺序由方法决定(在底部)。不幸的是,
    JMods
    类只有一个显式声明为
    private
    的构造函数



    *当然,您可以添加另一层插装、字节码汇编或类似的工具,或者只创建一个代码模型的修改版本供本地使用。但是没有非侵入性的方法来更改修饰符顺序。

    是的,我明白了。谢谢你的建议。为了我的目的,我将在本地进行更改。知道团队是否接受变更请求吗?如果是这样的话,我该如何让这个人进入队列?不确定更改请求。来源的最后一次变化是2年前。java.net迟早会被关闭。GitHub上有一些克隆/分支,但我不知道“官方”回购协议,不幸的是……是的,我明白了。谢谢你的建议。为了我的目的,我将在本地进行更改。知道团队是否接受变更请求吗?如果是这样的话,我该如何让这个人进入队列?不确定更改请求。来源的最后一次变化是2年前。java.net迟早会被关闭。GitHub上有一些克隆/分叉,但我不知道“官方”回购,不幸的是。。。