Netbeans不会在同一个包中识别类

时间:2015-02-19 13:19:07

标签: java netbeans libgdx package

我正在使用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:抱歉我的英文:)

3 个答案:

答案 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)

NetBeans不够聪明,

解决方案:只需在所有类中声明程序包名称,例如:

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!");
    }    
}