从理论上讲,如果类"absSensor“不能访问整数"value”,那么类"sensorFinal“中的函数"sensorFinal”如何能够调用类"proximitySensor“中的函数”sensorFinal“呢?
有没有一种标准的方法来调用对数据的访问受限的函数,或者有什么变通办法?提前感谢!
public class proximitySensor
{
double adjustment = 5;
public double proximitySensorAdjusted(int value)
{
double finalValue = value + adjustment;
return finalValue;
}
}
public class sensorFinal
{
public double absSensor()
{
proximitySensor sensorValue = new proximitySensor();
sensorValue.proximitySensorAdjusted( ??? )
}
}发布于 2018-11-05 10:52:50
你可以使用方法重载。
public double proximitySensorAdjusted(int value) {
double finalValue;
if(value == -1) {
finalValue = adjustment;
} else {
finalValue = value + adjustment;
}
return finalValue;
}
public double proximitySensorAdjusted() {
return proximitySensorAdjusted(-1); //call with some default value
}现在可以调用sensorValue.proximitySensorAdjusted();了。
发布于 2018-11-05 10:47:58
您需要指定任何整数值,例如0或5,而不是???。在您的示例中,int value是一个参数名称。只有该函数中的代码才能访问它。
发布于 2018-11-05 10:59:37
你可以使用选项,这与简单地重载你的函数没有什么不同,就像这里的另一个答案所建议的那样。
public class proximitySensor {
double adjustment = 5;
public double proximitySensorAdjusted(Optional<Integer> value) {
double finalValue = value.map(v -> v + adjustment)
.orElseGet(() -> {
... // Do something intelligent here
});
return finalValue;
}
}现在,使用以下命令调用该函数:
sensorValue.proximitySensorAdjusted(Optional.empty());顺便说一句,Java语言中类名的命名约定是Capitalized,因此您的proximitySensor类应该称为ProximitySensor。
https://stackoverflow.com/questions/53147635
复制相似问题