Java方法对特定包的可见性

时间:2013-12-25 07:39:20

标签: java methods package

是否有可能我不确定?我想创建一个由一些方法组成的java类,允许某些方法通过属性文件,注释或任何其他或某种机制来查看某些特定的包。假设 -

package com.a;

public class A {
    public a();
    public b();
    public c();
}

package com.a;

public class A1 {
   public A1() {
      A a = new A();
      a.a();     // Visible when coding
      a.b();     // Not visible when coding
      a.c();     // Not visible when coding
   }
}

package com.b;

public class B {
   public B() {
      A a = new A();
      a.a();     // Not visible when coding
      a.b();     // visible when coding
      a.c();     // Not visible when coding
   }
}

package com.c;

public class C {
   public C() {
      A a = new A();
      a.a();     // Not visible when coding
      a.b();     // Not visible when coding
      a.c();     // visible when coding
   }
}

我告诉这个,因为我看一些包方案,库中的java类的某些方法无法从外部访问,但这些方法存在于java中。如果我们提取java类,那么我们可以访问该方法,例如较低版本的android tethering类。

任何人都可以建议或了解这些知识......

2 个答案:

答案 0 :(得分:1)

我认为您可以在AspectJSpring AOP的帮助下实现这一目标。尝试编写@around切入点,如果你的方法将从上下文中调用,则会抛出一些异常,这是不允许的。

答案 1 :(得分:0)

不要认为核心java中有这种情况。您可以查看Alex给出的AspectJ。可以找到示例程序here