我正在尝试使用传入的参数创建一个新对象,然后使用该新对象放置在下面列出的setCarColor方法中。但是我的构造函数中的setCarColor给我的clv变量一个错误。它说“找不到符号”。 clv是CarColor类的变量。我不确定是不是因为传入的参数(rdIn,grnIn,bluIn)是整数还是什么?有人有什么想法吗?
最诚挚的问候,
public abstract class Vehicle
{
private String shapeId;
CarColor carColor;//CarColor data member from the ColorValue.java class
public Shape(String bodyid, int rd, int grn, int ble)
{
CarColor clv = new CarColor(rdIn, grnIn, bluIn);
setCarColor(clv(rd, grn, ble));// <---error here
}
private CarColor getCarColor()
{
return carColor;
}
private void setCarColor(int redIn, int blueIn, int greenIn)
{
if (redIn == 0 || blueIn == 0 || greenIn == 0 )
{
System.out.println("The value entered in is null. Please try again ");
System.exit(-1);
}
}
答案 0 :(得分:1)
此行几乎罚款:
ColorValue clv = new ColorValue(rdIn, grnIn, bluIn);
...虽然没有填充colorValue
字段,这是您可能期望的字段,但实际上并没有rdIn
,{ {1}}和grnIn
个变量。您的意思是bluIn
,rd
,grn
? (顺便说一句,如果你没有这样的合同名称,这会有所帮助。)
但这条线在两个方面被打破了:
ble
首先,它试图调用名为setColorValue(clv(rd, grn, ble));
的方法。你没有这样的方法。您有一个名为clv
的变量,但您没有“调用”变量。
第二个问题是,如果你真的是这个意思:
clv
然后你会使用不正确的参数 - setColorValue(clv);
没有一个setColorValue
类型的参数,它有三个参数,所有ColorValue
s。
不幸的是,目前还不清楚你尝试做什么,所以很难建议你。 也许你的意思是:
int
答案 1 :(得分:0)
这应该可以解决错误:
public abstract class Geometry
{
private String shapeId;
ColorValue colorValue;//ColorValue data member from the ColorValue.java class
public Shape(String bodyid, int rd, int grn, int ble)
{
shapeId = bodyid;
setColorValue(rd, grn, ble);
}
private ColorValue getColorValue()
{
return colorValue;
}
private void setColorValue(int redIn, int blueIn, int greenIn)
{
if(redIn == 0 || blueIn == 0 || greenIn == 0 )
{
System.out.println("The value entered in is null. Please try again ");
System.exit(0);
}
colorValue = new ColorValue(redIn, greenIn, blueIn);
}
}
答案 2 :(得分:0)
您声明的setColorValue()
方法需要3个int参数,但是您试图通过(可能)传递一个ColorValue对象来调用它,该对象由名为clv的方法创建,该方法不存在。因此,签名不匹配,找不到符号。
答案 3 :(得分:0)
你的setColorValue方法需要3个整数然后你试图将它传递给ColorValue
setColorValue(int redIn, int blueIn, int greenIn)
要使用此方法,您需要执行类似
的操作public Shape(String bodyid, int rd, int grn, int ble)
{
setColorValue(rd, grn, ble);
}
或者如果你想传递一个ColorValue对象
public Shape(String bodyid, int rd, int grn, int ble)
{
ColorValue clv = new ColorValue(rd, grn, ble);
setColorValue(clv);
}
private void setColorValue(ColorValue clv)
{
// do stuff
}
或者你可以这样做,它将创建对象,并在一步中将其传递给方法:
public Shape(String bodyid, int rd, int grn, int ble)
{
setColorValue(new ColorValue(rd, grn, ble));
}
目前你似乎有很多这些的组合。