Netbeans无法识别同一软件包中的类

sgtfey8w  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(172)

我正在用libgdx框架和netbeans 8创建一个小游戏。我在一个包里有所有的java类,这些类与目录结构相匹配。问题是我不能导入或创建类,例如:

package com.myfolder.folder2;

import ...
public class myclass1{

private myclass2 mc2;
etc...
}

在这种情况下,myclass 2是公共的,并且在包中,但是netbeans抱怨“找不到符号”。如果我尝试使用alt+enter,netbeans会说“在包com.myfolder.folder2中创建类myclass 2”或者类似于内部类。如果我按下第一个选项,netbeans会在包中创建一个类,文件名为myclass2_1(因为myclass 2已经存在!),而myclass 1无法识别新的类。如果我尝试导入类:

import com.myfolder.folder2.myclass2;

它给了我同样的错误,事实上代码完成工具只在导入语句中给了我一个疯狂的选项:

import com.myfolder.folder2.myclass1;

导入相同的类。
我能做什么?我从来没有这些问题使用netbeans。
PD:抱歉我的英语:)

nr7wwzry

nr7wwzry1#

您可以在相同的套件中使用类别,如下所示:ClassName classVariableName = new ClassName();
然后当你想从类中运行某个东西时
classVariableName.MethodThatIWantToRun();
或者,如果要从该方法访问属性,则可以使用非常类似的方式访问它:
classVarabileName.PropertyIWantToAccess
示例:
您有一个类,其中包含要访问的属性:

class MyClass {
    public int MyProperty = 5;
}

您可以在以下类中访问它:

public class MainClass {
    public static void main(String[] args) {
        MyClass myClass = new MyClass();
        System.out.println(myClass.MyProperty);
    }
}

如果这不起作用,那么你可能会有一些其他的问题。

x8diyxa7

x8diyxa72#

这是一个错误与我的类包定义之一:

public class DesktopLauncher{

public static void main(String... args){
LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
.
.
.
new LwjglApplication(new MyClass, config);
}
}

它是在MyClass中,因为我从一个旧项目中复制了一个片段,不小心复制了旧的包。

kuarbcqp

kuarbcqp3#

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

相关问题