Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:限制大型项目中的可见性_Java_Visibility - Fatal编程技术网

Java:限制大型项目中的可见性

Java:限制大型项目中的可见性,java,visibility,Java,Visibility,如何管理=限制大型Java项目中的可见性 更具体地说: 给出了大A、大B、一些子功能Little-A-1、Little-A-2和一些子功能Tiny-A-1-I和Tiny-A-1-II。小A特征是大A的子特征,小A-1特征是小A-1的子特征。 Little-A-1中有一些类和方法需要对其封闭特征Big-A及其所有子特征可见,但对Big-B不可见。其他类和方法应仅对Little-A-1及其子特征可见,而对Big-A和Little-A-2不可见。当然,Tiny-A-1-I也有类和方法,这些类和方法应该

如何管理=限制大型Java项目中的可见性

更具体地说: 给出了大A、大B、一些子功能Little-A-1、Little-A-2和一些子功能Tiny-A-1-I和Tiny-A-1-II。小A特征是大A的子特征,小A-1特征是小A-1的子特征。 Little-A-1中有一些类和方法需要对其封闭特征Big-A及其所有子特征可见,但对Big-B不可见。其他类和方法应仅对Little-A-1及其子特征可见,而对Big-A和Little-A-2不可见。当然,Tiny-A-1-I也有类和方法,这些类和方法应该只在Tiny-A-1-I中可见,而不是在Tiny-A-1-II中可见,或者只在Little-A-1及其子功能中可见,而不是在Little-A-2中可见,等等

简而言之:我有一个很大的功能层次结构,需要将可见性限制在该层次结构的某些部分。考虑到内置的可视性不够强大,如何在Java中实现这一点

是否有任何Java内置功能可用于此目的?或者任何外部项目?或者至少是一个Eclipse插件?我查看了注释处理器,但它们似乎也不够强大,因为它们无法访问实际代码。仅限于其静态结构。考虑到Java被用于许多大型项目,我想应该有一些解决方案来解决这个问题。我可能不是唯一一个有这个问题的人


理想的解决方案是允许我一步一步地应用它,而不需要我一次修改所有代码,因为这对我来说是不可能的。缺乏时间和资源。当访问不可见元素时,集成到Eclipse中显示错误也会很好-

您知道OSGi吗?公平地说,您希望在public和protected之间有一个访问级别,来自package foo.bar的对象可以访问package foo中的方法吗?我经常希望这是为将来的Java版本开发的,也许是在Java9中。请参阅:。“现在,我会选择OSGi。”理查丁格尔:是的,那将是最好的解决方案。我从斯卡拉知道这一点,我很喜欢。我知道包并没有正式嵌套在Java中。@Ray:是的,我听说过。但是对于这个特殊的问题来说,这听起来有点过分了。我希望有一个更轻量级的解决方案。