berg369 2021-04-30 16:06 采纳率: 85.7%
浏览 97

java怎么控制某些方法只允许特定的jar包访问?

似乎很简单的问题,利用方法的可见性,如public private protected等。我觉得不好用,请问你们是怎么控制的?

有些方法只允许核心jar包访问,其它组件作为第三方插件,不允许直接访问,只能通过核心jar包的接口访问。这是需求:

这些方法用默认的可见性,即可包内访问,这样把调用类放到相同的包里,是可以的,但是核心jar包中别的包里也要访问怎么办?

1、在同一个包里再加一个类,把方法改为public的,这样大家可以调这个类,但是还是变成都可以访问了;

2、改为protected,允许子类访问,在核心包需要访问的包里加一个子类--但是任何包里都可以加子类,还是变成都可以访问了。

  • 写回答

1条回答 默认 最新

  • 封印di恶魔 2021-04-30 16:40
    关注

    设要访问控制的jar为 A    核心jar为   B

    如果B可以访问A的方法    那么B一定有A的依赖

    第三方C可以通过访问B去调用A的方法    那么C一定有B的依赖

    C有B的依赖就有A的依赖    所以C一直能直接访问A中的方法

    评论

报告相同问题?