gpt4 book ai didi

Java包组织和访问修饰符

转载 作者:行者123 更新时间:2023-12-01 11:46:11 25 4
gpt4 key购买 nike

所以我正在努力组织我的类(class)和包。我有很多类,所以我目前正在将它们分类到相应的包中。现在我有两个类(class)的情况如下:

具有“非公开”构造函数:

package example;
public class File {
File() { // constructor should not be public
}
// stuff...
}

一个使用另一个构造函数:

package example.specialfiles;
import example.File;
public class CatalogFile {
private File wrappedFile;
CatalogFile() {
wrappedFile = new File();
}
// stuff...
}

看起来像this在 eclipse 中。

显然,文件构造函数不能在 CatalogFile 内部调用,因为它位于另一个包中。

由于没有类似 C# 的 internal ,我能想到的唯一可行的解​​决方案是将它们放入同一个包中,在我看来,这破坏了包的用途。

是否有任何其他解决方案或解决方法可以独立于包结构来组织 Eclipse 内的类?

最佳答案

如果你不希望其他人实例化你的文件(选择更好的名称),你应该放在同一个包中。是的,这可能很困惑,但确实很简单。

如果你想向其他人隐藏你的构造函数,你可以创建一个 getInstance() 方法来为你创建你的对象(工厂方法模式),并且在该方法中你可以检查调用者是否有权创建。例如使用 Java Reflection API。

关于Java包组织和访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com