我正在使用libgdx框架和netbeans 8创建一个小游戏。我在一个包中与目录结构匹配的所有java类。 问题是我无法导入或同化类,例如:
package com.myfolder.folder2;
import ...
public class myclass1{
private myclass2 mc2;
etc...
}
在这种情况下,myclass2是公共的并且在包内,但netbeans抱怨“找不到符号”。 如果我尝试使用alt + enter,netbeans会说“在com.myfolder.folder2包中创建类myclass2”或者像内部类一样。如果我按下第一个选项,netbeans在包中创建一个类,文件名为myclass2_1(因为myclass2存在!),而myclass1不识别新类。 如果我尝试导入该类:
import com.myfolder.folder2.myclass2;
它给了我同样的错误,实际上代码完成工具只在导入语句中给了我一个疯狂的选项:
import com.myfolder.folder2.myclass1;
导入同一个类。
我该怎么办?我从来没有使用netbeans这些问题。
PD:抱歉我的英文:)
答案 0 :(得分:0)
您可以在同一个包中使用类,如下所示:
ClassName classVariableName = new ClassName();
然后,当你想从课堂上运行某些东西时,你会把
classVariableName.methodThatIWantToRun();
或者,如果您想从该方法访问变量,您将以非常类似的方式访问它:
classVarabileName.variableIWantToAccess
示例:
您有一个类,您想要访问的变量:
class MyClass {
public int myvariable = 5;
}
您可以在此课程中访问它:
public class MainClass {
public static void main(String[] args) {
MyClass myClass = new MyClass();
System.out.println(myClass.myvariable);
}
}
如果这不起作用,可能会遇到其他问题。
答案 1 :(得分:0)
我的类包定义之一是错误的:
public class DesktopLauncher{
public static void main(String... args){
LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
.
.
.
new LwjglApplication(new MyClass, config);
}
}
这是在MyClass中,因为我从旧项目中复制了一个片段,并意外地复制了旧包。
答案 2 :(得分:0)
解决方案:只需在所有类中声明程序包名称,例如:
A级
package test;
public class ClassA {
public static void main(String[ ] args) {
ClassB.myFunctionB();
}
}
B类:
package test;
public class ClassB {
public static void myFunctionB () {
System.out.print("I am ClassB!");
}
}