这一直困扰着我多年,我想你们其中一个人会知道 - 在Eclipse的.classpath文件中,classpattrytry元素的combineaccessrules属性实际上用于什么?
我可以在Java Build Path配置对话框中看到它可以被maniuplated,但我想不出一个很好的用例。如果我搞砸了设置,或者手动修改.classpath文件,它似乎没有任何效果。
我希望其他人能够很好地利用它,我可以窃取他们的想法。基本上,这是一个我想要划伤的痒。
答案 0 :(得分:26)
正确使用访问规则可以防止使用“内部”和/或“非api”类和方法。当您将类或包添加为 Forbidden 或 Discouraged 时,编译器在您使用指定包中的类或类时会显示错误或警告。要更长时间地介绍访问规则,请阅读this short article。
对于使用组合访问规则,请设想以下情况:
您不允许在项目A中使用“non-api”类,因此您在这些类/包上设置了一些 Forbidden 访问规则。
在项目B中,您也不允许使用“non-api”,但在使用“unstable api”时,您确实希望收到警告。在这种情况下,在项目B中,如果检查将规则与导出的项目条目的访问规则结合起来,则只需设置其他气馁访问规则。
答案 1 :(得分:3)
访问规则是方便的小事,但很危险。它们从项目编译器中排除源文件,但在文件系统中保留文件。
我工作的项目在我们的一个源文件夹中有一个bootstrap类,但如果我们将整个文件夹包含在项目类路径中,它将无法编译(这是一个很长的故事,构建过程会处理这个)。
因此我们使用eclipse访问规则来排除它,它在开发过程中从不困扰我们。这意味着我们不能轻易地更改代码,但这是几年来没有触及过的那些类之一。
通过JavaDoc判断,组合访问规则是一个真正的边缘用例。要使用它,你必须:
我真的不能说它会如何有用,但我希望至少回答你的“它是什么”问题:)
答案 2 :(得分:1)