![](/img/trans.png)
[英]Java - Calling Boolean Method from another class with arraylist parameter
[英]How to use a Boolean method from one class in another to check a string parameter?
我正在為學校分配 java,它是關於電話卡系統的,每種類型的電話卡都有不同的課程,我被困在使用這個提供的 CallZone class 來檢查區域是否放在參數是有效的,我不知道如何在電話卡class中調用它的isValidZone方法,比如SuperNA10Card class。
我不確定這是否是使用 CallZone class 檢查參數區域是否有效的正確方法。
if(zone.equals("canada")){return true;}
or
if(CallZone.isValidZone(zone) == true){return true}
這是 CallZone class:
public final class CallZone {
public static boolean isValidZone(String zone) {
zone = zone.toLowerCase();
return (zone.equals("canada") ||
zone.equals("usa") ||
zone.equals("europe") ||
zone.equals("asia") ||
zone.equals("anz") ||
zone.equals("latinam") ||
zone.equals("africa")
);
}
}
這是電話卡類之一,SuperNA10 class,使用它來檢查區域是否有效:
public class SuperNA10 extends PhoneCard{
final double canMinRate = 0.05;
final double usMinRate = 0.10;
final double weeklyMainFee = 0.50;
public SuperNA10(long no, int passwd){
super(no, passwd,10.00) //invokes superclass class constructor sets no, passwd and balance to 10.00
}
public boolean allowed(String zone){
if(CallZone.isValidZone(zone) ){
return true;
}else{
return false;
}
}
}
我不確定如何獲取 CallZone class 來檢查 SuperNA10 class 方法中允許的參數是否有效,如果我的問題不清楚或引起混淆,也很抱歉,這是我第一次發布。
由於您有特定數量的呼叫區域,您可以使用這樣的enum
:
public enum CallZone {
CANADA, USA, EUROPE; //add any number of zones here
public static boolean isValid(String zone) {
return Stream.of(values())
.anyMatch(s -> s.toString().equalsIgnoreCase(zone));
}
}
您還可以查看使用CallZone.valueOf(zone)
以及捕獲IllegalArgumentException
,而不是像上面那樣使用Stream
。 但我不喜歡在非異常情況下使用異常。
然后在您的SuperNA10
class 中,您可以像這樣使用它:
public boolean allowed(String zone) {
return CallZone.isValid(zone);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.