如何在接口中查找静态字符串

Bas*_*iks 0 java string static interface

我有下面的界面;

public static interface Attributes
{
        public final static String InterestDeterminationDate = "InterestDeterminationDate";
        public final static String CreditType = "CreditType";
        public final static String NumberInternal = "NumberInternal";
        public final static String InterestRate = "InterestRate";
        public final static String RemainingDebtAmount = "RemainingDebtAmount";
        public final static String ConsumerPart = "ConsumerPart";
        public final static String TechnicalProductName = "TechnicalProductName";
        public final static String TermOfDuration = "TermOfDuration";
        public final static String PeriodInterestTaxReduction = "PeriodInterestTaxReduction";
        public final static String OriginMark = "OriginMark";
        public final static String Currency = "Currency";
        public final static String PenaltyRuleId = "PenaltyRuleId";
        public final static String InstallmentCalculationMethod = "InstallmentCalculationMethod";
        public final static String InterestRenewalDate = "InterestRenewalDate";
        public final static String TechnicalProductDescription = "TechnicalProductDescription";
        public final static String TechnicalProductDate = "TechnicalProductDate";
        public final static String CollectionIntervalPeriod = "CollectionIntervalPeriod";
        public final static String Enddate = "Enddate";
}
Run Code Online (Sandbox Code Playgroud)

我需要检查一个给定的字符串是这个属性接口的一部分.

我怎么检查这个?

此致,bas Hendriks

Col*_*ert 5

如果你真的想要这个,那么你应该使用反射并遍历属性中的所有值.

更好的方法是使用枚举:

public enum Attributes{
    InterestDeterminationDate,
    CreditType,
    NumberInternal,
    InterestRate,
    RemainingDebtAmount,
    ConsumerPart,
    TechnicalProductName,
    TermOfDuration,
    PeriodInterestTaxReduction,
    OriginMark,
    Currency,
    PenaltyRuleId,
    InstallmentCalculationMethod,
    InterestRenewalDate,
    TechnicalProductDescription,
    TechnicalProductDate,
    CollectionIntervalPeriod,
    Enddate;
}
Run Code Online (Sandbox Code Playgroud)

Attributes.valueOf(yourVariable);会为你检查这个.

注意枚举,valueOf()方法将抛出一个IllegalArgumentExceptionif yourVariable不在Attributes.另外,你yourVariable不是null或者你必须处理一个NullPointerException