亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 222 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號