Jar 向不同的用户分发api的最佳方式是什么?

Jar 向不同的用户分发api的最佳方式是什么?,jar,domain-driven-design,distribution,Jar,Domain Driven Design,Distribution,我有这样一个典型的班级: public class A { void run(); //for all users void delete(); //for privileged users } 我想把这些类作为一个jar分发给不同的用户,普通用户只能看到允许的方法,而不能看到这些高特权的方法(比如delete()),我如何才能做到这一点? 顺便说一句,我是DDD的忠实粉丝,这意味着我不希望这些方法崩溃。如果没有访问修饰符(公共/受保护/私有…),它将不可见。我最终得到了这个

我有这样一个典型的班级:

public class A {
   void run();    //for all users
   void delete(); //for privileged users
}
我想把这些类作为一个jar分发给不同的用户,普通用户只能看到允许的方法,而不能看到这些高特权的方法(比如delete()),我如何才能做到这一点?
顺便说一句,我是DDD的忠实粉丝,这意味着我不希望这些方法崩溃。

如果没有访问修饰符(公共/受保护/私有…),它将不可见。

我最终得到了这个解决方案: 使用private或package access修饰符限制高特权方法访问,以便普通用户无法看到它们,特权用户通过反射访问这些方法

public class A {
   public void run();    //for all users
   void delete(); //for privileged users
}
特权用户:
Reflections.invokeMethod(ins,“run”)

我知道access修饰符无法实现我想要的,一些好主意?我不知道是否有可能只是在一个罐子中隐藏一个方法!不过你可以限制访问。在JavaEE环境中,可以通过对方法使用@RoleAllowed注释来限制对基于角色的特定方法的访问。出于您的担忧,SecurityManager中可能存在一些问题。请参阅访问控制实施