这可能是不可能的,但我正在尝试创建一个只有共享父类(super class)的类才能访问的构造函数,这几乎是 protected 修饰符的逆逻辑。我假设没有修改器可以直接完成此任务,但是知道我想要完成什么,有什么建议吗?
public Account extends SomeEntity {
//default public
public Account() {
}
// I am wanting this constructor to be only available to sibling classes.
// (those that share the same super class )
<modifier> Account(Element accountElement) {
}
}
public Accounts extends SomeEntity {
private List<Account> accountList;
//default public
public Accounts() {
Account newAcct = new Account(element);
//looped loading up Generic list of Account
this.accountList.add(newAcct);
}
我正在使用 RESTful Web 服务并根据 XML 响应构建对象,问题是如果我 GET
帐户列表,要将其构建到帐户对象列表中,我必须尽管我已经有了信息,但还是要查询每个单独帐户的网络服务,这似乎效率很低。
但是
我不想让我正在构建的 API 的普通用户能够以这种方式实例化帐户对象。 (使用元素
)
最佳答案
没有这样的语言结构。从 1.6 开始,包(=默认)访问是唯一的 Java 机制。
我确信你可以用堆栈做一些令人讨厌的事情,但我不推荐它们。
关于java - 限制构造函数只能使用同级构造函数 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5304925/