Java:可以调用具有未知参数的函数

从理论上讲,如果类“sensorFinal”无法访问整数“value”,“sensorFinal”类中的函数“absSensor”如何能够调用“proximitySensor”类中的函数“proximitySensorAdjusted”?


是否有一种标准方法可以调用对数据访问受限的函数,或者是否有解决方法?提前致谢!


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( ??? ) 

    }

}


尚方宝剑之说
浏览 204回答 3
3回答

动漫人物

您可以使用方法重载。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();.

慕码人8056858

而不是???您需要指定任何整数值,例如0or 5。在您的示例中int value是一个参数名称。只有该函数内的代码才能访问它。

慕田峪7331174

您可以使用选项,这与简单地重载您的函数没有什么不同,正如这里建议的另一个答案。public class proximitySensor {&nbsp; &nbsp; double adjustment = 5;&nbsp; &nbsp; public double proximitySensorAdjusted(Optional<Integer> value) {&nbsp; &nbsp; &nbsp; &nbsp; double finalValue = value.map(v -> v + adjustment)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.orElseGet(() -> {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ... // Do something intelligent here&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; return finalValue;&nbsp;&nbsp; &nbsp; }}现在您使用以下命令调用该函数:sensorValue.proximitySensorAdjusted(Optional.empty());作为旁注,Java 中类名的命名约定是Capitalized,因此您的proximitySensor类应该被称为ProximitySensor。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java