Java 如何选择库的方法可视方法

Java 如何选择库的方法可视方法,java,methods,Java,Methods,我已经创建了一个库,我想限制一些方法的可见性。这些方法被声明为公共的,因为它们在整个库中都使用(在不同的包上)。我该怎么做 例如: public class X{ public void A(); public void B(); } 我只希望方法A通过集成库的应用程序可见,而不是方法B 谢谢 如果需要在库中公开方法B(),则不能将其隐藏给使用库的人 您可以将类X分为接口和实现,并且只向库的用户公开接口: public interface X {

我已经创建了一个库,我想限制一些方法的可见性。这些方法被声明为公共的,因为它们在整个库中都使用(在不同的包上)。我该怎么做

例如:

    public class X{
       public void A();
       public void B();
   }
我只希望方法A通过集成库的应用程序可见,而不是方法B

谢谢

如果需要在库中公开方法B(),则不能将其隐藏给使用库的人

您可以将类X分为接口和实现,并且只向库的用户公开接口:

public interface X {
    public void A();
}

public class XImpl implements X {
    @Override
    public void A() {...}

    public void B() {...}
}

如果可以将库更改为在内部使用XImpl,则此方法有效,因此您仍然可以使用B()方法而无需强制转换。

从方法B中删除访问修饰符,并使其仅在其包中可用

public class X{
    public void A();
    void B();
}
或者将其标记为protected,以便其在子类中也可用

public class X{
    public void A();
    protected void B();
}

要了解更多信息,请阅读。

从逻辑上讲,方法A只对集成您的库的人可见。。。这已经是你想要的方式了,我认为他不想B也出现。让b protexted怎么样?问题是b在我的库的不同包中使用。Progourd可以帮助解决这个问题,还是有更简单的方法?