Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
这就是我为数组列表定义构造函数的方式。
现在,我想在此列表中添加另一个元素的绝对大小:
}
我怎么做?我不断收到错误消息,告诉我当格式为(String,String,String,String)时,无法使用(String,String,String,String,String)定义列表。
至
您想将
根据OP的响应进行更新
您实际上想将absoluteMagnitude传递给您的
您可以使用以下两个步骤进行操作:
使用重载构造函数的构造函数链接。在此,您定义了
公共数量(字符串strMagnitude,字符串乘数,字符串单位,
字符串strType)
{
//使用默认值absoluteMagnitude调用受约束的构造函数
this(strMagnitude,multiplier,unit,strType,“ 0.0”);
}
公开单个属性的
公共字符串getAbsoluteMagnitude()
{
返回this.absoluteMagnitude;
}
公共无效setAbsoluteMagnitude(字符串absoluteMagnitude)
{
this.absoluteMagnitude = absoluteMagnitude;
}
现在,当您想创建一个
但是,如果要指定
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
这就是我为数组列表定义构造函数的方式。
public Quantity(String strMagnitude, String multiplier, String unit,
String strType)
{
this.setMagnitude(strMagnitude);
this.multiplier = multiplier;
this.unit = unit;
this.setType(strType);
}
现在,我想在此列表中添加另一个元素的绝对大小:
private static List<Quantity> getAbsoluteQuantities(List<Quantity> quantities)
{
List<Quantity> absoluteQuantities = new ArrayList<Quantity>();
float absoluteMagnitude;
// loop through quantities
for (Quantity quantity : quantities){
Float magnitude = quantity.getMagnitude();
String multiplier = quantity.getMultiplier();
String unit = quantity.getUnit();
UnitType type = quantity.getType();
if (multiplier != null){
float multiplierValue = populateMultiplierFromFile().get(multiplier);
//System.out.println(multiplierValue);
absoluteMagnitude = magnitude * multiplierValue;
}
else {
absoluteMagnitude = magnitude;
}
String strMagnitude = String.valueOf(absoluteMagnitude);
String strType = String.valueOf(type);
String originalMagnitude = String.valueOf(magnitude);
//The line below is where I get the error
absoluteQuantities.add(originalMagnitude, multiplier, strType, unit,strMagnitude);
}
return absoluteQuantities;
}
}
我怎么做?我不断收到错误消息,告诉我当格式为(String,String,String,String)时,无法使用(String,String,String,String,String)定义列表。
最佳答案
更改行:
//The line below is where I get the error
absoluteQuantities.add(originalMagnitude, multiplier, strType, unit,strMagnitude);
至
absoluteQuantities.add(new Quantity(originalMagnitude, multiplier, strType, unit,strMagnitude));
您想将
Quantity
实例添加到List<Quantity>
,因此您应该首先构造Quantity
实例,然后将其附加到列表中根据OP的响应进行更新
您实际上想将absoluteMagnitude传递给您的
Quantity
实例,该实例实际上仅接受4个参数-originalMagnitude
,multiplier
,unit
和strType
。您可以使用以下两个步骤进行操作:
使用重载构造函数的构造函数链接。在此,您定义了
Quantity
整形器的重载,该重载具有5个参数。因此,您的Quantity
类有两个构造函数-一个是您定义的构造函数,另一个是重载的构造函数,该构造函数接受absoluteMagnitude
公共数量(字符串strMagnitude,字符串乘数,字符串单位,
字符串strType)
{
//使用默认值absoluteMagnitude调用受约束的构造函数
this(strMagnitude,multiplier,unit,strType,“ 0.0”);
}
public Quantity(String strMagnitude, String multiplier, String unit,
String strType, String absoluteMagnitude)
{
//initialize class level variabes using the parameter values
}
公开单个属性的
getter/setter
对。因此,absoluteMagnitude
属性也将有一对公共字符串getAbsoluteMagnitude()
{
返回this.absoluteMagnitude;
}
公共无效setAbsoluteMagnitude(字符串absoluteMagnitude)
{
this.absoluteMagnitude = absoluteMagnitude;
}
现在,当您想创建一个
Quantity
实例而不指定absoluteMagnitude
值时,您可以调用带有4个参数的构造函数。然后,您可以在以后使用设置器设置absoluteMagnitude
值。但是,如果要指定
absoluteMagnitude
值,请使用其他带有5个参数的构造函数的重载版本。07-24 18:50