编译中的Java默认修饰符

编译中的Java默认修饰符,java,javac,Java,Javac,我目前正在修改javac编译器,以某种方式生成我们自己的编程语言 我们希望摆脱Java的默认访问修饰符,将没有访问修饰符的所有内容都公开 但到目前为止,我还没有成功地找到在Java编译代码中实现这一点的地方。我可以很容易地添加到其中一个声明阶段,但这是一个我们不希望的糟糕的解决方案 对此有何见解?看看,尤其是第4.5节字段和第4.6节方法,我看到定义了以下常量: ACC_PUBLIC 0x0001 ACC_PRIVATE 0x0002 ACC_PROTECTED 0x0004

我目前正在修改javac编译器,以某种方式生成我们自己的编程语言

我们希望摆脱Java的默认访问修饰符,将没有访问修饰符的所有内容都公开

但到目前为止,我还没有成功地找到在Java编译代码中实现这一点的地方。我可以很容易地添加到其中一个声明阶段,但这是一个我们不希望的糟糕的解决方案

对此有何见解?

看看,尤其是第4.5节字段和第4.6节方法,我看到定义了以下常量:

ACC_PUBLIC     0x0001
ACC_PRIVATE    0x0002
ACC_PROTECTED  0x0004
但是,类的特定方法(字段)最多可以设置一个ACC_PRIVATE、ACC_PROTECTED和ACC_PUBLIC标志(JLS)


由于没有默认标志,并且文档中说在大多数情况下,没有标志意味着默认访问。

对于接口,默认修改器是公共的。我更喜欢做的是将所有内容都私有化,或者包本地化,当我尝试使用需要公共的东西时,让IDE将字段或方法作为自动修复(我必须访问源代码才能这样做)(我必须问:为什么你要对语言做这样的更改?!)因此,我们可以假设没有真正的属性,这只由jvm处理?@Adriano:修饰符存储在
.class
文件中,jvm读取它们。我只是猜测no
ACC\uu
modifiers表示默认修饰符。