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

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中的方法

    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么