类型转换

JAVA最强工具类之一HuTool

萝らか妹 提交于 2019-12-15 20:55:32
简介 JAVA最强工具类-HuTool Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当; Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。 这是官方对它的介绍,简单点说,它通过一些封装,将原来略显复杂的API进一步优化,使得你在使用的时候能够更加方便快捷,当然语法也会比原来更加简单易懂。 包含组件 一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件: 模块介绍 hutool-aopJDK动态代理封装,提供非IOC下的切面支持 hutool-bloomFilter布隆过滤,提供一些Hash算法的布隆过滤 hutool-cache简单缓存实现 hutool-core核心,包括Bean操作、日期、各种Util等 hutool-cron定时任务模块,提供类Crontab表达式的定时任务 hutool

MyBatis错误:Caused by:java.lang.NumberFormatException:For input string:“xxxxxx”

冷暖自知 提交于 2019-12-15 11:04:29
最近接手解决前同事遗留下来的项目BUG,出现如下图所示的错误: 从上图我们可以很明显的看到是数值转换异常,也就是String类型的数据无法转换为Number类型的。可是代码中并没有进行相对应的转换操作呀! 错误发生在MyBatis的配置文件中的,找到对应的赋值字段,如下图所示: 也就是说,sampleCode字段的值在和0进行比较之前先进行的类型转换操作,所以导致问题的发生。 找到问题了,可是不明白为什么会进行类型转换,没办法只能网上搜索一下了。 顺利找到了想要的答案: MyBatis映射文件中,if标签判断字符串相等的两种方式: MyBatis是使用ognl表达式,所以在判断字符串sampleCode变量是否等于0时,会将0当作Number类型的,所以会将sampleCode变量先进行类型转换。由于我们传递的不是String类型的数字,转换必然出错。 那么如何避免转换呢? < if test = 'sampleCode == "0"' > 或者 < if test = "sampleCode == '0'.toString()" > ’0’会当作字符,也会导致出错 。 小伙伴们,我的这位前同事,在SQL代码中进行了逻辑判断,所以才导致了错误的发生。以前我们只会进行非空校验而已。 < if test = "sampleCode != '' and sampleCode !=

C++ 详解dynamic_cast

瘦欲@ 提交于 2019-12-15 00:17:38
dynamic_cast运算符的主要用途:将基类的指针或引用安全地转换成派生类的指针或引用,并用派生类的指针或引用调用非虚函数。如果是基类指针或引用调用的是虚函数无需转换就能在运行时调用派生类的虚函数。 前提条件:当我们将dynamic_cast用于某种类型的指针或引用时,只有该类型含有虚函数时,才能进行这种转换。否则,编译器会报错。 dynamic_cast运算符的调用形式如下所示: dynamic_cast<type*>(e) //e是指针 dynamic_cast<type&>(e) //e是左值 dynamic_cast<type&&>(e)//e是右值 e能成功转换为type*类型的情况有三种: 1)e的类型是目标type的公有派生类:派生类向基类转换一定会成功。 2)e的类型是目标type的基类,当e是指针指向派生类对象,或者基类引用引用派生类对象时,类型转换才会成功,当e指向基类对象,试图转换为派生类对象时,转换失败。 3)e的类型就是type的类型时,一定会转换成功。 定义如下基类和派生类: #include<string> #include<iostream> usingnamespacestd; classBase{ public: Base():str(nullptr) {} Base(strings):str(s) {} virtualvoidprint()

golang常用类型转换

醉酒当歌 提交于 2019-12-13 09:46:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> int转string strconv.Itoa(_port) string转int // string转换成int strInt, err := strconv.Atoi(str) // string转换成int64 strInt64, _ := strconv.ParseInt(str, 10, 64) // string转换成int32 strInt32, _ := strconv.ParseInt(str, 10, 32) // 这里strInt32实际上还是int64类型的,只是截取了32位,所以最终还是要强转一下变成int32类型,如果不强转成int32是会编译报错的 var realInt32 int32 = 0 realInt32 := int32(strInt32) string转byte[] var byteArr []byte = []byte(str) byte[] 转string string(urlsJson[:]) array 转json字符串 urlsJson, _ := json.Marshal(finalResult) json字符串转array json.Unmarshal([]byte(s), &array) json相关转换参考: https://www.kancloud

Java基本数据类型与类型转换

谁都会走 提交于 2019-12-11 10:26:58
Java基本数据类型与类型转换 文本关键字:8种、基本数据类型、整数类型、浮点类型、字符类型、布尔类型 一、基本数据类型 1. 概述 在Java中,所使用到的类型可以分为两大类,一类是基本数据类型,一共有8种,包含:整数,小数,字符,布尔。另外一类是引用类型,包含:字符串,数组以及各种Java类。 2. 整数类型 整数类型是一个很常用,也比较简单的类型,在计算机中以二进制的方式存储,其中有一位是符号位。 byte:-2^7 ~ 2^7 - 1 1字节 8bit short:-2^15 ~ 2^15 - 1 2字节 16bit int:-2^31 ~ 2^31 - 1 4字节 32bit long:-2^63 ~ 2^63 - 1 8字节 64bit 3. 浮点类型 对于浮点(小数)类型,存储的方式与整数有所不同,其中符号位固定为1位,另外两部分为指数部分和小数部分。我们都学过科学计数法的表示方式,对于十进制,小数点前的部分的取值范围为1-9,在存储前也会整理成二进制的形式,会变成(+/-)1.b × 2^a。那么指数部分对应的就是a,尾数部分对应的就是b。 对于float,指数部分为8位,尾数部分为23位。对于double,指数部分为11位,尾数部分为52位。 float:约1.4 × 10^-45~3.4 × 10^38,精度为6~7位 4字节 32bit double:约4.9

static_cast和dynamic_cast和reinterpret_cast和const_cast

半城伤御伤魂 提交于 2019-12-11 06:39:12
说明:记录一下强制类型转换的关键字 概况: static_cast 定义类型:static_cast<new_type>(expression).new_type为目标类型,expression为原始数据类型变量或者表达式。用于强制类型转换。编译时检查,运行时不能保证转换的安全性。主要使用情况:1:基类与派生类之间类型转换,2:常规类型之间转换。注意事项:关于const的转换。 下行转换(基类转换成派生类),不安全,如下:利用static_cast可以实现转换,但是在运行时会出错。 class CBase { public: virtual void Test() { printf("in CBase\n"); }; }; class CTest :public CBase { public: virtual void Test() { printf("in CTest\n"); }; virtual void Test2() { printf("in CTest Test2\n"); }; }; CBase *p = new CBase(); CTest *q = static_cast<CTest *>(p);//可以看出q不为nullptr. q->Test2();//运行出错. 而且static_cast不能将const转换成non-cast.如下: int j2 = 2;

python_study_day01

ぐ巨炮叔叔 提交于 2019-12-10 23:09:35
python中的数据类型(Number String List Tuple Set Dictionary) 不可变:Number String Tuple 可变: List Set Dictionary 注意:(在数字->bool 字符串->bool的类型转换中 只有0 或者 ""转换为布尔类型为False 其他都为True) print('heh') 来源: https://www.cnblogs.com/kongjunkongjun/p/12019706.html

类型转换

♀尐吖头ヾ 提交于 2019-12-10 19:15:21
这里主要讲的是将其他的数据类型转换成Number、String、Boolean类型,欢迎补充~! 转换成Number类型 1. Number()函数,如: var a = "123" ; a = Number(a);   1.1 如果是纯数字的字符串,则直接将其转换为数字;如果字符串中有非数字的内容,则转换为NaN;如果字符串是一个空串或者是一个全是空格的字符串,则转换为0   1.2 true转换为1,false转换为0   1.3 null转换为0;undefined转换为NaN 2. 专门用于字符串:parseInt()方法和parseFloat(),如: var a = "123567a567px" ; var b = parseInt(a); var c = parseFloat(a); 3. 为一个值 -0 、*1 、 /1来将其转换为Number,如: var a = '123' ; var b = a-0 ; var c = a*1 ; var d = a/1; 4. +一元运算符,可以对一个其他的数据类型使用+,来将其转换为number,如: var a = "18" ; a = +a; 5. -一元运算符,对于非Number类型的值,它会将先转换为Number,如: var a = true ; a = -a; 转换成String类型 1. toString(

Java基础篇(中)

二次信任 提交于 2019-12-10 15:56:04
4 、 Java 关键字 下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。 类别 关键字 说明 访问控制 private 私有的 protected 受保护的 public 公共的 类、方法和变量修饰符 abstract 声明抽象 class 类 extends 扩充 , 继承 final 最终值 , 不可改变的 implements 实现(接口) interface 接口 native 本地,原生方法(非 Java 实现) new 新 , 创建 static 静态 strictfp 严格 , 精准 synchronized 线程 , 同步 transient 短暂 volatile 易失 程序控制语句 break 跳出循环 case 定义一个值以供 switch 选择 continue 继续 default 默认 do 运行 else 否则 for 循环 if 如果 instanceof 实例 return 返回 switch 根据值选择执行 while 循环 错误处理 assert 断言表达式是否为真 catch 捕捉异常 finally 有没有异常都执行 throw 抛出一个异常对象 throws 声明一个异常可能被抛出 try 捕获异常 包相关 import 引入 package 包 基本类型 boolean 布尔型 byte 字节型

CUDA学习日记(一):thrust::device_pointer_cast(pnt* p)

谁说胖子不能爱 提交于 2019-12-10 15:40:11
thrust::device_pointer_cast(pnt* p)是thrust库中的一个指针类型转换函数,可将其他类型指针转换为thrust::device_ptr指针,其作用与thrust::raw_pointer_cast(pnt* p)刚好相反。 经过类型转换,就可以很方便的使用thrust::sort等函数,而无需将其赋值给thrust::device_vector。 sample有时间再贴上来 来源: CSDN 作者: 博天影帝 链接: https://blog.csdn.net/qq_38337943/article/details/103475821