![](/img/trans.png)
[英]Check 2 strings without case sensitivity or use equalsIgnoreCase method
[英]figuring out where to put equalsIgnoreCase() to avoid case sensitivity
我正在使用Spring 4,並使用以下URL進行API調用
我有一個Java枚舉類,其定義如下:
http://localhost.com:8080/int/fin/trs?bId=B-XYZ&sortBy=currentTs
而且,我有控制器方法,此調用正在接收參數:
public ResponseEntity<SetRESTData<FinancialTransactionDTO>> getTFIUse(
@RequestParam(value = "status", required = false) final String statusString,
@RequestParam(value = "transactionMappableEnumthod", required = false) final String transactionMappableEnumthodString,
@RequestParam(value = "sortBy", required = false) final String orderBy,
@RequestParam(value = "sortDirection", required = false) final String sortDirectionString) {
final FinancialTransactionPaginationData paginationData = StringUtils.isBlank(orderBy) ?
null : new FinancialTransactionPaginationData(FinancialTransactionSortableField.fromCode(orderBy), null, null, sortDirectionString);
}
FinancialTransactionSortableField類如下:
public enum FinancialTransactionSortableField implements MappableEnum<FinancialTransactionSortableField>, SF {
ID(DefaultSortableField.ID.getCode(), "T Id", DefaultSortableField.ID.getColumnNaMappableEnum()),
CREATED_TS(DefaultSortableField.CREATED_TS.getCode(),
DefaultSortableField.CREATED_TS.getDescription(),
DefaultSortableField.CREATED_TS.getColumnNaMappableEnum()),;
DefaultSortableField枚舉類定義如下:
public enum DefaultSortableField implements MappableEnum<DefaultSortableField>, SF {
CREATED_TS("CreatedTs", "Created Timestamp", "CreatedTs"),;
private final String code;
private final String description;
private final String columnName;
private static final Map<String, DefaultSortableField> cmap =
MappableEnum.buildCodeMap(DefaultSortableField.class);
private DefaultSortableField(final String code, final String description, final String columnName) {
this.code = code;
this.description = description;
this.columnName = columnName;
}
@JsonValue
@Override
public String getCode() {
return code;
}
@Override
public String getDescription() {
return description;
}
@Override
public String getColumnName() {
return columnName;
}
@Override
public DefaultSortableField toEnum(final String code) {
return fromCode(code);
}
@JsonCreator
public static DefaultSortableField fromCode(final String code) {
return cmap.get(code);
}
}
我基本上是在進行api調用,例如http://localhost.com:8080/int/fin/trs?bId=B-XYZ&sortBy=CreatedTs,所以當代碼執行到達FinancialTransactionSortableField的方法DefaultSortableField.CREATED_TS.getCode()時,類,CreatedTs值(這是DefaultSortableField CREATED_TS枚舉聲明中的枚舉的第一個參數)被返回。到目前為止,一切都很好。但是,當我在上面的URL中傳遞sortBy = createdTs(注意小寫c)時,它沒有我正在嘗試找出在哪里使用equalsIgnoreCase()方法,它將在FinancialTransactionSortableField類中的某個位置,還是在此行上的DefaultSortableField.CREATED_TS.getCode()
@JsonCreator
public static DefaultSortableField fromCode(final String code) {
for(String key : cmap.keySet()){
if(code.equalsIgnoreCase(key)){
return cmap.get(key);
}
}
return null;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.