问题描述
|
我有一个类文件名serializedobject,我想在另一个类文件中调用该类文件并使用它的方法。
我想声明该类文件已成为另一个数组要使用的数组。
然后我声明如下:
serializedobject[] setData = new serializedobject[10];
并将其用于for循环
for(int i=0; i<clientInfo.length; i++)
{
double locationX = clientInfo[i].getLocation().getX();
double locationY = clientInfo[i].getLocation().getY();
String name = clientInfo[i].getName();
double mood = clientInfo[i].getMood();
double hunger = clientInfo[i].getHunger();
double chargestate = clientInfo[i].getChargestate();
setData[i].setAll(locationX,locationY,name,mood,hunger,chargestate);
System.out.println(setData[i].getName());
}
在serializedobject类中,我有set方法和get方法,
但似乎对此不起作用。除了该方法,我还可以做什么?
感谢您的任何评论和帮助。
系统似乎无法真正将我的价值设置为方法,
我无法从中获得任何价值
System.out.println(setData[i].getName());
但系统没有任何编译错误。
这是我的serializedobject类文件
public class serializedobject
{
public static double locationX;
public static double locationY;
public static String name;
public static double mood;
public static double hunger;
public static double chargestate;
public serializedobject()
{
}
public void setAll(double locationX,double locationY,String name,double mood,double hunger,double chargestate)
{
this.locationX = locationX;
this.locationY = locationY;
this.name = name;
this.mood = mood;
this.hunger = hunger;
this.chargestate = chargestate;
}
public String getName()
{
return this.name;
}
public double getLocationX()
{
return this.locationX;
}
public double getLocationY()
{
return this.locationY;
}
public double getMood()
{
return this.mood;
}
public double getHunger()
{
return this.hunger;
}
public double getChargestate()
{
return this.chargestate;
}
}
解决方法
注意,此“ 4”将仅创建数组。所有元素仍然为null,因此在这些元素上调用方法(如
getName()
)将导致NullPointerException。您必须先初始化元素:setData [0] = new serializedObject();
,然后在元素上调用调用方法。
,首先,按照惯例,类名的首字母应大写,即“ 7”。在for循环中,您需要执行以下操作:
for(int i = 0; i < clientInfo.length; i++)
{
// Construct new serialized object
setData[i] = new SerializedObject();
// Extract client information
double locationX = clientInfo[i].getLocation().getX();
double locationY = clientInfo[i].getLocation().getY();
String name = clientInfo[i].getName();
double mood = clientInfo[i].getMood();
double hunger = clientInfo[i].getHunger();
double chargestate = clientInfo[i].getChargestate();
// Store information in serialized object
setData[i].setAll(locationX,locationY,name,mood,hunger,chargestate);
// Add serialized object to array
System.out.println(setData[i].getName());
}
注意:目前,您的程序应引发NullPointerException,这应该让您知道setData
中的元素是null
。
,public static double locationX;
public static double locationY;
public static String name;
public static double mood;
public static double hunger;
public static double chargestate;
这些属性都是静态的。这意味着它们将在serializedObject的所有实例之间共享。因此,如果您在一个实例上执行setAll
,似乎将更改所有其他实例。
您应该使这些实例成员:
public double locationX;
public double locationY;
public String name;
public double mood;
public double hunger;
public double chargestate;
字段通常不应公开,但这是一个单独的讨论。