열거값을 int로 변환하는 방법
타입 int를 반환하는 함수가 있습니다.단, TAX 열거값밖에 없습니다.
TAX 열거값을 int에 캐스트하려면 어떻게 해야 합니까?
public enum TAX {
NOTAX(0),SALESTAX(10),IMPORTEDTAX(5);
private int value;
private TAX(int value){
this.value = value;
}
}
TAX var = TAX.NOTAX; // This value will differ
public int getTaxValue()
{
// what do do here?
// return (int)var;
}
이 열거형을 공개해야 합니다.value
어떤 식으로든, 예를 들어.
public enum Tax {
NONE(0), SALES(10), IMPORT(5);
private final int value;
private Tax(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
...
public int getTaxValue() {
Tax tax = Tax.NONE; // Or whatever
return tax.getValue();
}
(이름을 조금 더 틀에 박힌 읽기 쉬운 것으로 변경했습니다만).
이것은 생성자에 값을 할당하는 것을 전제로 하고 있습니다.그게 당신이 원하는 게 아니라면, 우리에게 더 많은 정보를 줘야 할 거예요.
나는 이것을 선호한다:
public enum Color {
White,
Green,
Blue,
Purple,
Orange,
Red
}
그 후, 다음과 같이 합니다.
//cast enum to int
int color = Color.Blue.ordinal();
생성자에서 할당하는 값을 사용하려면 열거형 정의에 메서드를 추가하여 해당 값을 반환해야 합니다.
enum 값을 나타내는 고유 번호를 원하는 경우 다음을 사용할 수 있습니다.ordinal()
.
때때로 C#의 접근방식으로 Java 세계에서의 생활이 쉬워질 수 있습니다.:
class XLINK {
static final short PAYLOAD = 102, ACK = 103, PAYLOAD_AND_ACK = 104;
}
//Now is trivial to use it like a C# enum:
int rcv = XLINK.ACK;
값이 열거에 추가되어도 String은 유효하기 때문에 정수보다 String 표현을 사용하는 것이 좋을 수 있습니다.열거형 name() 메서드를 사용하여 열거형 값을 String an the enum's value Of() 메서드로 변환하여 String에서 열거형 표현을 다시 작성할 수 있습니다.다음으로 열거값을 String 및 되돌리는 예를 나타냅니다(ValueType은 열거형).
ValueType expected = ValueType.FLOAT;
String value = expected.name();
System.out.println("Name value: " + value);
ValueType actual = ValueType.valueOf(value);
if(expected.equals(actual)) System.out.println("Values are equal");
public enum Tax {
NONE(1), SALES(2), IMPORT(3);
private final int value;
private Tax(int value) {
this.value = value;
}
public String toString() {
return Integer.toString(value);
}
}
class Test {
System.out.println(Tax.NONE); //Just an example.
}
(적어도 Android에서는) IntDef 주석을 사용하여 int 상수 집합을 결합하는 방법이 약간 다릅니다.
@IntDef({NOTAX, SALESTAX, IMPORTEDTAX})
@interface TAX {}
int NOTAX = 0;
int SALESTAX = 10;
int IMPORTEDTAX = 5;
함수 매개 변수로 사용:
void computeTax(@TAX int taxPercentage){...}
또는 변수 선언:
@TAX int currentTax = IMPORTEDTAX;
public enum ProfileType {
PRIVATE,
PUBLIC
}
private ProfileType profileType = ProfileType.PRIVATE;
프로파일에서 int를 얻으려면간단히 수행할 수 있는 유형:
int profileTypeInt = profileType.ordinal();
언급URL : https://stackoverflow.com/questions/8157755/how-to-convert-enum-value-to-int
'programing' 카테고리의 다른 글
개인 메서드, 필드 또는 내부 클래스가 있는 클래스를 테스트하려면 어떻게 해야 합니까? (0) | 2022.07.21 |
---|---|
Vuetify.js - 동적 카드 높이 애니메이션 (0) | 2022.07.21 |
Java Regex의 matches()와 find()의 차이 (0) | 2022.07.20 |
Java에서 파라미터를 참조로 전달할 수 있습니까? (0) | 2022.07.16 |
exec() 함수와 그 패밀리를 설명해 주세요. (0) | 2022.07.16 |