gpt4 book ai didi

java - 当你在一个文件中有多个包私有(private)类时,它们可以从包中的其他文件中引用吗?

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

根据 JLS,在一个文件中包含多个类是有效的语法,只要文件中只有一个类是公共(public)的即可。据我了解,这通常是为了允许仅在单个文件中引用的小类保留在该文件中。

我不确定的一个方面是同一个包中的其他文件是否能够安全地引用原始文件中的第二个类 - 根据范围规则它似乎有效,但我不确定它是否是编译时的问题。我经常看到它工作正常,但该项目的其他开发人员也告诉我,在系统其他地方进行更改后,偶尔会出现构建问题,无法找到有问题的符号。这种引用嵌入其他类文件中的包私有(private)类的设置是否将某种编译顺序依赖性引入了使构建变得脆弱的过程?

最佳答案

是的,这绝对没问题——基本上,除非您的构建系统配置不当。无论如何,您可能应该一次性编译同一个包的所有源代码。

我可以看到它可能会导致一些构建系统出现问题,这些构建系统试图找出需要重新编译的内容 - 如果它们假设源文件的名称与结果类的名称相匹配,它们在这里可能会感到困惑(即使您在同一个文件中没有多个类)但这是一个工具问题而不是语言问题。

请注意,通常情况下,如果我有“仅在单个文件中引用的小类”,我通常会将它们设为私有(private)静态嵌套类:

public class OuterClass
{
// Normal code...

// Only used within OuterClass
private static class Foo
{
}
}

如果它真的只打算从一个类中使用,那比给予包私有(private)访问更干净(IMO)。

关于java - 当你在一个文件中有多个包私有(private)类时,它们可以从包中的其他文件中引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770328/

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