将库作为包私有导入

a.t*_*aby 5 java android

我知道我们可以在java中创建一个包私有类.所以该类是Internal,只能在指定的模块中访问:

class MyPackagePrivateClass
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我正在开发一个我命名的安卓库,LibraryA我希望使用LibraryB我自己的存在LibraryA.如何防止用户直接LibraryA使用LibraryB

是否有任何概念,如包私有库或类似的东西?

更新(对于那些问'我为什么需要这个?'的人)

LibraryB有这样的方法:

public QueryBuilder select(String... columns);
Run Code Online (Sandbox Code Playgroud)

但我强烈认为我们应该使用Type-Safe Enum pattern和阻止用户将字符串传递给这些方法(考虑维护和重构问题).所以我决定将这些方法包装在LibraryA:

public TypedQueryBuilder select(Column... columns) {
        queryBuilder = queryBuilder.select(toString(columns));
        return this;
    }
Run Code Online (Sandbox Code Playgroud)

因此我的库的用户应该使用我提供的Typed方法(Column这里是一个类型安全的枚举).但是,如果他们可以访问原始方法,他们可能会使用这些方法,我倾向于禁止这样做.

Mar*_*cus -1

从库 B 中制作一个 jar 文件并将其导入到库 A 中。

/sf/answers/73619381/