[英]Java: possible to call up a function with unknown parameters
從理論上講,如果“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( ??? )
}
}
您可以使用方法重載。
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();
.
而不是???
您需要指定任何整數值,例如0
或5
。 在您的示例中, int value
是一個參數名稱。 只有該函數內的代碼才能訪問它。
您可以使用選項,這與簡單地重載您的函數沒有什么不同,正如這里建議的另一個答案。
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
類應稱為ProximitySensor
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.