在另一个包的主包中使用一个包中的 java 类(同一项目)

我正在使用 Java 处理的项目中有两个包,当我在另一个包中运行类的主程序时,我需要从一个包中调用一个类。


我有如下所示的内容:


Project JavaCode

    /src

        /fr.insalyon.tc.framework

            Main.java

            Gameplay.java

        /Game

            Wythoff.java

问题是在我调用的 Wythoff.java 文件中,import fr.insalyon.tc.framework.Gameplay;但是当我运行 Main.java 时出现错误,说它找不到类 Wthoff。


Main.java 和 Gameplay.java 都是package fr.insalyon.tc.framework;第一行,Gameplay 是一个接口,Wythoff 实现 Gameplay 来玩游戏。main 的作用如下:


BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );

nomClasse = in.readLine();

Class<?> votreClasse = Class.forName(nomClasse);  

JeuCombinatoire jeu = (JeuCombinatoire) votreClasse.newInstance();

当我运行 Main 并提示我输入类名时,输入 Wythoff 会给我一个 ClassNotFoundException


我不知道如何修改项目或包以使其一起工作,同时保持当前包原样,我不想在默认包中有 Wythoff.java,它需要在 /Game


MMMHUHU
浏览 135回答 3
3回答

梵蒂冈之花

Class.forName(nomClasse);需要完整的类名,如docs 中所述。所以你必须输入Game.Wythoff

莫回无

Class.forName(nomClasse);&nbsp;需要类名的完全限定路径。请将其 nomClasse 更改为 (packgname.classname) & Improt Appropriat 包。注意:- 有关更多信息,请阅读 Java 文档链接:-&nbsp;https://docs.oracle.com/javase/8/docs/api/

绝地无双

您需要键入其中fr.insalyon.tc.framework.Game.Wythoff一个是完全限定的名称。或者,在您的情况下,您也可以键入Game.Wythoff,因为包含main方法的类位于直接父包中。请注意,通常包名称以一个简单的字母开头,例如gamenot&nbsp;Game。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java