java正确使用来自其他类文件的方法
在努力保持代码“整洁”的过程中,为了学习,我有一个包含七个类文件的应用程序(目前)。两个扩展活动(Main.class和Game.class)。 我已经研究这个“问题”好几天了,我看到了很多不同的解决方案,但还没有找到一个有效的解决方案
我的问题是:如何使用另一个类中的方法而不从以下代码中获取NullPointerException错误
(来自Main.class的代码)
public Game Ga = new Game();
或
public Game Ga;
两者都给出了相同的结果,我还尝试:
public Game Ga = ((Game)getApplicationContext());
我的问题是,我使用Eclipse并能够开始编写Ga.
,然后Eclipse将找到游戏。类文件并列出我在游戏中的方法。班但是,一旦编译后,应用程序在尝试运行带有Logcat:NullPointerException错误的Ga.方法时崩溃
我对Java/Android还是很陌生,但我的调试经验让我相信Ga变量是不正确的
编辑:
梅因。阶级
public class Main extends Activity {
public Game Ga;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// for testing
setContentView(R.layout.main);
playerOne = 1;
aiRandom();
Ga.gameNew();
游戏。阶级
public class Game extends Activity {
public void gameNew() {
gameReset();
fight();
# 1 楼答案
变量名不是问题所在
假设你的声明是——
此时Ga默认为null。它还没有被实例化。因此,如果您的游戏类有一个名为getScreenWidth的方法,该方法返回一个浮点值,您可以在声明Ga的位置访问它,并尝试-
由于Ga从未被实例化过,上面的代码将为您提供NPE(NullPointerException)。但是,除非出现其他错误,否则以下操作应该有效,在这种情况下,您应该使用游戏类中的代码或您尝试调用的方法更新您的问题,并准确记录错误日志-
更新
正如您展示的一些代码一样,您没有实例化您的Ga。在onCreate方法中实例化它-
更改-
至-
# 2 楼答案
若游戏是一个活动类的子类,而您试图从另一个活动(Main)调用它的方法,那个么您就做错了。 您可以将此方法声明为静态,并像这样调用它:Game。someStaticMethod()