簡體   English   中英

如何將Java.Lang.Enum轉換為整數?

[英]How to cast a Java.Lang.Enum to an integer?

在monodroid中,我有一個Java綁定,該綁定返回一個Java.Lang.Enum對象。

當我嘗試將此對象轉換為int時,它會拋出異常。

System.InvalidCastException: Cannot cast from source type to destination type.

這是我在調試器的直接窗口中看到的內容:

state
{OPENING}
base: {Java.Lang.Enum}
IsClosed: false
IsOpened: false
ThresholdClass: 0x1d200832
ThresholdType: {System.MonoType}

我很驚訝一個枚舉不能轉換為int嗎?

您可以使用java.lang.Enum.ordinal()返回一個int值,該值代表該類型對象的Enum類定義中Enum常量的位置。

例如,如果Enum類的定義是這樣的:

enum Example {
    Cat, Dog, Fish, Goat
}

那么Cat.ordinal()將返回int值0, Dog.ordinal()將返回int值1, Fish.ordinal()將返回int值2,依此類推。

但是,不能保證Enum常量的序數位置保持不變,因此,在確定Enum定義的更改(這會更改序數值)不會破壞您的代碼之前,切勿使用此常量。

暫無
暫無

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

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