【发布时间】:2015-03-02 13:01:21
【问题描述】:
Java 新手,但我做过一些 .Net 编程。我想知道Java是否有相当于.Net eum?下面是一个例子。我知道 Java 有枚举,但是你不能给它赋值。
在 .Net 中,我可以对值进行枚举。在代码中使用时,我无需注释,或者在编写新过程时,请记住 0、1、2 和 3 代表什么。我还可以在构造函数中使用枚举作为参数类型,然后将 AccessType.Full 作为参数传递。
我怎样才能复制这是 Android Studio?
Public Class Delete
Private Enum AccessType
Full = 0
ReadOnly = 1
Delete = 2
Add = 3
End Enum
Private Sub DeleteIem(sItem As String)
If User.Access = AccessType.Delete Or User.Access = AccessType.Full Then
'delete something here
Else
MsgBox("You do not have access to delete these items.", vbInformation
End If
End Sub
End Class
在 Android Studio 中,我有下面的 if{} 块。
if (AllLists.get(pos).Access == 0) {
MsgText += getResources().getString(R.string.info_cat_shared_no) + "\n";
}
else if (AllLists.get(pos).Access == 1){
MsgText += getResources().getString(R.string.info_cat_shared_edit) + "\n";
}
else if (AllLists.get(pos).Access == 2){
MsgText += getResources().getString(R.string.info_cat_shared_no_edit) + "\n";
}
它会将代码转换为下面的代码,我不必总是检查 0、1、2 和 3 代表什么。我查找了 Java 枚举,它们只是一个字符串列表,对此不起作用,或者至少不是我能想到的实现它。
if (AllLists.get(pos).Access == AccessType.Full) {
MsgText += getResources().getString(R.string.info_cat_shared_no) + "\n";
}
else if (AllLists.get(pos).Access == AccessType.ReadOnly){
MsgText += getResources().getString(R.string.info_cat_shared_edit) + "\n";
}
else if (AllLists.get(pos).Access == AccessType.Delete){
MsgText += getResources().getString(R.string.info_cat_shared_no_edit) + "\n";
}
【问题讨论】:
-
Java Enum return Int 的可能重复项