我喜欢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无法在同一个包中看到该类。
有人有任何想法吗?
答案 0 :(得分:10)
如果它们在同一个包中,您可以在B类中访问A而无需导入:
package example;
public class B{
public static void main(String[] args){
A myA = new A();
}
}
答案 1 :(得分:6)
也许这会帮助你,或者其他人使用IntelliJ获得“无法解决符号”错误,但仍然可以编译他们的代码。
假设您有buymypies编写的两个文件,标准的Java约定是这两个文件将存在于源代码区域的Example目录中,如/myprojectpath/src/Example
。但从技术上讲,不需要在源目录结构中反映包结构,这只是一种最佳实践。
因此,如果您不模仿包结构,并且这两个文件只在/myprojectpath/src
中,IntelliJ将为您提供“无法解析符号”错误,因为它希望源代码结构能够反映包结构,但它会编译好。
我不确定这是不是你的问题,但是我确实使用了IntelliJ并且看过这个,所以这是值得关注的。
答案 2 :(得分:5)
我有同样的问题:同一个包中有2个类,但是当一个人试图调用另一个时,Intellij用红色表示它并且说无法解析符号' Classname'无法解析符号' LocalPreferencesStore'。
然后它想要在原地添加完全限定名称 - 所以它清楚地知道路径 - 所以为什么它只能访问该类?
该模块仍然可以编译和运行,所以它只是IDE表现得很奇怪 - 所有红色都非常分散注意力,因为它实际上并不是一个错误,它只是IDEA抛出一个怪异的摇摇欲坠。
这也是最近的。两个星期前,我根本没有遇到这个问题,现在突然间它开始了。当然,它可能很快就会自行消失,但它真的很烦人。
答案 3 :(得分:1)
同样的问题,我刚修好了。
我不知道您的文件夹结构。
但是,如果您手动添加了package example
,那就是问题所在。
包应该与文件夹结构相同,这意味着如果您希望将类文件存储在package example
中,则必须将java文件存储在src的名为example的子文件夹中。
答案 4 :(得分:0)
请确保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();
}
}
答案 5 :(得分:-4)
您需要了解我认为的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'。