繁体   English   中英

同一个包中的类

[英]Classes in same package

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

我想从“B”级进入“A”级而无需进口。 像这样:

A类:

package example;

public class A{ ... some stuff here ...}

B级:

package example;

public class B{
    public static void main(String[] args){
        A myVar = new A();
    }
}

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

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

有人有什么想法吗?

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

package example;

public class B{
    public static void main(String[] args){
        A myA = new A();
    }
}

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

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

因此,如果您不模仿包结构,并且这两个文件只在/myprojectpath/src ,IntelliJ将为您提供“无法解析符号”错误,因为它希望源代码结构能够反映包结构,但它会编译好的。

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

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

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

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

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

同样的问题,我刚刚解决了。

我不知道你的文件夹结构。 但是,如果您的package example是手动添加的。那就是问题所在。 包应该与文件夹结构相同,这意味着如果您希望将类文件存储在package example ,则必须将java文件存储在src的名为example的子文件夹中。

请确保A.java和B.java都在同一个包中。 由于两者都在同一个包中,因此无需指定package example;

A类:

public class A{ ... some stuff here ...}

B级:

public class B{
    public static void main(String[] args){
        A myVar = new A();
    }
}

你需要学习关于Java的基础知识。

以下是我认为您正在尝试的基本示例:

package Example;

public class A
{
    String myVar;

    public String getMyVar()
    {
        return myVar;
    }

    public void setMyVar(String myVar)
    {
        this.myVar = myVar;
    }
}

您需要创建一个A的实例。

package Example;

public class B
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        A myA = new A();

        myA.setMyVar("Hello World!");

        System.out.println(myA.getMyVar);
    }

}

查找java'getters'和'setters'。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM