从一个类获取值以在另一个类中使用它(java)
我有两节课
在ABCclass
double a = 0.5 public double lala() { return a; }
我想在另一个课堂上使用它,让我们说一下DEF课程
ABC abc; double baba = abc.lala();
但它说java.lang.NullPointerException,任何想法? 谢谢
public class AdapterDB { double cal; double rcarbohydrate; double rfat; double rprotein; public AdapterDB(double cal, double rcarbohydrate, double rfat, double rprotein, Context ctx) { this.cal = cal; this.rcarbohydrate = rcarbohydrate; this.rfat = rfat; this.rprotein = rprotein; this.context = ctx; DBHelper = new DatabaseHelper (context); } public double Calorie() { return cal; } public double Carbohydrate() { return rcarbohydrate; } public double Protein() { return rprotein; } public double Fat() { return rfat; } }
这是我的ABC类的代码,我想在另一个类> _ <中使用它们中的一些
你需要在内存中分配ABC,否则它指向null
,因此NullPointerException:
ABC abc = new ABC(); double baba = abc.lala();
编辑 :好的,如果ABC没有零参数构造函数,如:
public ABC() { }
你有两个选择来解决你的问题。 添加一个和内部为您的其他字段提供默认值。 喜欢:
public AdapterDB() { DBHelper = new DatabaseHelper (context); }
或者,修改对象的创建,如:
double p1 = ; double p2 = ; double p3 = ; double p4 = ; Context ctx = new Context(); // don't know what this does. ABC abc = new ABC(p1, p2, p3, p4, context); double baba = abc.lala();
您需要在使用之前初始化该abc
引用:
ABC abc = new ABC(); // then use it
你没有初始化ABC类的abc对象,这就是原因。 你需要像这样初始化第一个abc对象
ABC abc = new ABC(); double baba = abc.lala();
如果你想在不创建类的任何对象的情况下使用该类成员使用静态关键字,就像这样
class ABC{ private static double a = 0.5; public static double lala(){ return a; } }
并且您可以像这样访问该方法
ABC.lala();
但为此,您必须使用要用于静态方法的static关键字定义另一个成员