ssn*_*one 1 groovy case-sensitive uppercase
我正在接受 JSON 输入,并希望将其转换为大写。有人可以帮我解决我的代码吗
int synchronizeSingleUnit(ApiResultDTO apiResultDTO, def inputJSON, int totalUpdates) {
def sql = synchronizationApiSqlHelperService.getUnitsSql()
String unit = getEmptyIfValueNull(inputJSON.unit)
def session = sessionFactory_apiDb.openSession() as SessionImpl
def connection = session.connection()
def sqlConnection = new Sql(connection)
try {
sqlConnection.execute(sql, [unit:unit])
} catch (Exception ex) {
// Preload result with statement to be executed
apiResultDTO.setJsonFailingPart(inputJSON)
apiResultDTO.setFailedSql(sql, [unit:unit])
throw new ExceptionWrapper(apiResultDTO, ex)
} finally {
session.close()
connection.close()
}
Run Code Online (Sandbox Code Playgroud)
您可以使用 java String.toUpperCase() ,如下所示:
String unit = getEmptyIfValueNull(inputJSON.unit)
String uCaseUnit = unit.toUpperCase()
Run Code Online (Sandbox Code Playgroud)
<--编辑-->
作为评论和补充,我不知道方法的具体细节,getEmptyIfValueNull
但从名称来看,您只想在表达式inputJSON.unit
返回 null 时返回一个空字符串。
Groovy 有两个特殊的运算符,可以使此类表达式更易于编写。
使用这两个你可以更简洁地重写你的代码:
String unit = inputJSON.unit?.toUpperCase() ?: ''
Run Code Online (Sandbox Code Playgroud)
解释:
inputJSON.unit?.toUpperCase()
- 求值inputJSON.unit
,如果该表达式返回 null,则仅从整个表达式返回 null(从不执行该toUpperCase
方法)。如果inputJSON.unit
返回非空值,则事情就像使用 一样工作inputJSON.unit.toUpperCase()
。... ?: ''
- 接受一个表达式,如果它不是空字符串或 null,则返回它,否则返回空字符串。其中第一个运算符.?
专门用于处理空值,第二个运算符?:
使用常规真理,它包括空值,但比空值更具包容性。
上面的写法有几种,例如:
String unit = (inputJSON.unit ?: '').toUpperCase()
Run Code Online (Sandbox Code Playgroud)
但在我看来,第一个版本“流畅”得更好。每个人都有自己的。
归档时间: |
|
查看次数: |
7975 次 |
最近记录: |