为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

尚方宝剑之说 2021-12-30 16:35:35
从理论上讲,如果类“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( ??? )     }}
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

您可以使用方法重载。


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();.


查看完整回答
反对 回复 2021-12-30
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-12-30
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您可以使用选项,这与简单地重载您的函数没有什么不同,正如这里建议的另一个答案。


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。


查看完整回答
反对 回复 2021-12-30
  • 3 回答
  • 0 关注
  • 203 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信