簡體   English   中英

Java中具有有限選項的自定義數據類型

[英]Custom data type with limited options, in Java

嘗試創建自定義(用戶定義)數據類型時,誰的值只能是少數幾個選項之一,例如不同的狀態。 就像是:
trafficLight = [ "red" | "amber" | "green" ];
要么
coin = [0.01 | 0.02 | 0.05 | 0.1 | 0.2 | 0.5 | 1 | 2];

在這些示例中,我認為trafficLight只是一個選項有限的String ,類似地, coinint

我認為我需要對這些新數據類型進行分類,但是如何限制分配給這些自定義數據類型的變量的可能值?

您可以使用一個枚舉

public enum TrafficLight {
    RED, AMBER, GREEN;
}

按照https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

由於enum既不是String也不是int您必須將其映射到所需的類型,這可以通過幾種不同的方式完成,例如,通過調用現有的String toString()或定義自定義int getValue()方法。

如何使用枚舉。 以下是如何使用它的示例。 通過將枚舉用作方法的參數,可以將值限制為僅枚舉允許的值。

public class MyNewType {

    public void someMethod(TrafficLight tl, Coin coin) {
        //do something
    }

    public static enum TrafficLight {
        red, amber, green;
    }

    public static enum Coin {
        oneCent(.01f), twoCent(.02f), fiveCent(.05f), tenCent(.1f), fiftyCent(.5f), oneDollar(1f), twoDollar(2f);

        private Coin(float amount) {
            this.amount = amount;
        }
        float amount;

    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM