同一个包中的类

nic*_*s_r 4 java intellij-idea

我喜欢Intellij IDEA,但我已经堆积在Java导入的一个小问题上.例如,有一个名为"example"的包,其中包含两个不同的类:A.java和B.java.

我想从"B"级进入"A"级而无需进口.像这样:

A类:

package example;

public class A{ ... some stuff here ...}
Run Code Online (Sandbox Code Playgroud)

B级:

package example;

public class B{
    public static void main(String[] args){
        A myVar = new A();
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码可能无效,但无关紧要.使用IDE及其导入类的机制很麻烦.

所以,问题是我看不到来自B的A类.想法说'不能解决符号',但实际上我知道A类存在于包中.下一个奇怪的是编译器工作正常,没有例外.只是IDEA无法在同一个包中看到该类.

有人有什么想法吗?

tal*_*las 10

如果它们在同一个包中,您可以在B类中访问A而无需导入:

package example;

public class B{
    public static void main(String[] args){
        A myA = new A();
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 6

也许这会帮助你,或者其他人使用IntelliJ获得"无法解决符号"错误,但仍然可以编译他们的代码.

假设你有两个buymypies写的文件,标准的Java约定是这两个文件存在于源代码区的Example目录中,比如/myprojectpath/src/Example.但从技术上讲,不需要在源目录结构中反映包结构,这只是一种最佳实践.

因此,如果您不模仿包结构,并且两个文件都在/myprojectpath/src,IntelliJ将为您提供"无法解析符号"错误,因为它希望源代码结构反映包结构,但它将编译好.

我不确定这是不是你的问题,但是我确实使用了IntelliJ并且已经看过了,所以这是值得关注的.


小智 5

我有同样的问题:在同一个包中有2个类,但当一个人试图调用另一个时,Intellij用红色表示它并且说无法解析符号'Classname',例如无法解析符号'LocalPreferencesStore'.

然后它想要在原位添加完全限定名称 - 所以它清楚地知道路径 - 所以为什么它不能只访问该类?

该模块仍然编译和运行,所以它只是IDE表现得很奇怪 - 所有红色都非常分散注意力,因为它实际上并不是一个错误,它只是IDEA投掷一个奇怪的摇摆.

这也是最近的.两个星期前,我根本没有遇到这个问题,现在突然间它开始了.当然,它可能很快就会自行消失,但它真的很烦人.