在Java中布尔和字符串或数字1和0之间的转换示例

电脑杂谈  发布时间:2020-06-26 11:22:34  来源:网络整理

java 字符转数字_java字符转16进制_java 字符转数字

下面的编辑器将为您提供Java中布尔和字符串或数字1和0之间的转换示例. 编辑认为这很好,因此我将与您分享并提供参考. 让我们一起关注小编,看看

mysql的bit字段仅存储1和0java 字符转数字,这是二进制存储java 字符转数字,因此如何将其映射到java的dao层中的布尔值

java 字符转数字_java字符转16进制_java 字符转数字

@Column(name="is_standard")
private boolean isStandard;
public void setIsStandard(boolean isStandard){
 this.isStandard = isStandard;
}
public boolean getIsStandard(){
 return isStandard;
}

实际上,在对底部dao进行反射时,首先确定该字段的字段类型(例如isStandard)是否为布尔值,如果是,则在检测到字段位is_standard时将其转换为

java 字符转数字_java 字符转数字_java字符转16进制

private List<T> populateData(ResultSet resultSet, Class<T> clazz) throws Exception {
 List<T> dataList = new ArrayList<T>();
 List<Field> fieldList = MappingAnnotationUtil.getAllFields(clazz);
 ResultSetMetaData rsmd = resultSet.getMetaData();
 int columnsCount = rsmd.getColumnCount();
 List<String> columnNameList = new ArrayList<String>();
 for(int i = 0; i < columnsCount; i++){
  columnNameList.add(rsmd.getColumnLabel(i+1).toLowerCase());
 }
 while (resultSet.next()) { 
  T bean = clazz.newInstance();
  for(Field f : fieldList) {
  String columnName = MappingAnnotationUtil.getDBCloumnName(clazz, f).toLowerCase();
  if(columnNameList.contains(columnName)) {
   Object columnValueObj = null;
   Class<> filedCls = f.getType();
   
   if(filedCls == int.class || filedCls == Integer.class) {
   columnValueObj = resultSet.getInt(columnName);
   } else if(filedCls == String.class) {
   columnValueObj = resultSet.getString(columnName);
   } else if(filedCls == boolean.class || filedCls == Boolean.class) {
   columnValueObj = resultSet.getBoolean(columnName);
   } else if(filedCls == byte.class || filedCls == Byte.class) {
   columnValueObj = resultSet.getByte(columnName);
   } else if(filedCls == short.class || filedCls == Short.class) {
   columnValueObj = resultSet.getShort(columnName);
   } else if(filedCls == long.class || filedCls == Long.class) {
   columnValueObj = resultSet.getLong(columnName);
   } else if(filedCls == float.class || filedCls == Float.class) {
   columnValueObj = resultSet.getFloat(columnName);
   } else if(filedCls == double.class || filedCls == Double.class) {
   columnValueObj = resultSet.getDouble(columnName);
   } else if(filedCls == BigDecimal.class) {
   columnValueObj = resultSet.getBigDecimal(columnName);
   } 
   
   else {
   columnValueObj = resultSet.getObject(columnName);
   }
   
   if (columnValueObj != null) {
   Method setterMethod = MappingAnnotationUtil.getSetterMethod(clazz, f);
   setterMethod.invoke(bean, new Object[] { columnValueObj });
   }
  }
  }
  dataList.add(bean);
 }
 return dataList;
 }

请注意

java 字符转数字_java 字符转数字_java字符转16进制

else if(filedCls == boolean.class || filedCls == Boolean.class) {
 columnValueObj = resultSet.getBoolean(columnName);
} 

resultSet.getBoolean(columnName)是转换方法,具体实现是

java字符转16进制_java 字符转数字_java 字符转数字

 for (int i = 0; i < trueStrings.length; ++i) {
  if (trueStrings[i].equals(stringValue)) {
   return type.cast(Boolean.TRUE);
  }
  }
  for (int i = 0; i < falseStrings.length; ++i) {
  if (falseStrings[i].equals(stringValue)) {
   return type.cast(Boolean.FALSE);
  }
  }

核心原理是基于字符串/数字进行比较,如果为1,0,则返回true / false,其他则直接返回false或引发异常,如果字符串为[true,yes,y,on ,1]返回true,如果为[false,no,n,off,0],则返回false

上面的Java中布尔和字符串或数字1和0的转换示例是我与您共享的所有内容. 我希望能给您参考,也希望您能支持我们.

本文标题: Java中的布尔值和字符串或数字1和0转换示例


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-259023-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...