上周遇到一个问题,只怪自己平时没注意这个细节,从数据库取数据在map集合里,取出该值是我用了.tostring的方法,一次在当取出数据为空时代码报java.lang.NullPointerException空指针异常。而另外一个同时平时习惯行使用(string)强转避免了该错误的发生,下来之后我就针对string的这几种方法做一个新的认识,做到后事不忘前事之师。

.tostrinng():

一般的对象或者参数都是有toString()的方法的,只是要注意在一个参数定义为int类型是就没有这个方法了。还有就是当参数为空的时候.toString()方法就会报出空指针异常,这是这个方法的不好的地方使用时需要仔细斟酌一下。例如:

(string):强转形式,简单方便,效率高。不好的就是,他只能是强转原本就是字符串的东西,如果原本不是字符串的话,那么就会报错。

String.valueOf():这个方法是静态的,直接通过String调用,可以说是完美。他内部的实现机制:

public static String valueOf(Object obj){return (obj==null) ? "null" : obj.toString();};

在内部就是做了为空的判断的,所以就不会报出空指针异常。

这三者的使用,个人觉得应该使用String.valueOf()的方式。这样的使用安全可靠。

转载于:https://www.cnblogs.com/ckxlovejava/p/6856527.html

tostring、(string)和 String.valueOf()相关推荐

  1. Java中toString方法和String.valueOf方法使用

    在Java程序中,我发现一些人喜欢用toString()方法将获得的对象或数据直接转成字符串:看到这里我就有些疑惑了. toString()方法是object中的方法,默认打印的是地址的字符串格式,如 ...

  2. java arraylist add时默认调用tostring_从一道例题谈Arrays.toString()与其他String的转换方法...

    有了上述基础后,我接下来谈谈从一道题目中获得的些许收获. 今天在做题是发现了非常重要的一点.题目来源:http://www.lintcode.com/en/problem/anagrams/ 我们先来 ...

  3. java String中的valueOf方法

    class Main{public static void main(String[] args) {String s = String.valueOf(true);String c = String ...

  4. toString()与new String ()用法区别

    toString()与new String ()用法区别 TestString.java package com.atguigu;import com.sun.org.apache.xerces.in ...

  5. toString()与new String()用法区别

    我们在平时工作中做Base6编解码数据转字符串时经常会遇到toString()与new String(),对于这两者的用法区别简单总结一下. 举个栗子 测试用例: @Testpublic void m ...

  6. c++ string replace_Java——String类的常用方法总结

    点击上方"IT咸鱼",星标公众号重磅干货,第一时间送达 一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象. ...

  7. Java char转换为String,String转换为char数组

    Today we will look into java char to String program. We will also learn how to convert String to a c ...

  8. java日期转字符串_Java时间日期格式转换Date转String和String转Date

    1 Java时间格式转换大全2 3 import java.text.*;4 importjava.util.Calendar;5 public classVeDate {6 /** 7 * 获取现在 ...

  9. JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能

    JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...

  10. Java时间日期格式转换Date转String和String转Date

    Java时间格式转换大全 谢谢大神的时间格式转换稿子:https://blog.csdn.net/u010486495/article/details/79260448 查阅后发现没有我想要的,后经人 ...

最新文章

  1. linux-进程的替换exec函数族
  2. Javascript面向对象编程(二):构造函数的继承
  3. Android --- android.intent.action.MAIN 与 android.intent.category.LAUNCHER常用的几种情况
  4. a与a:link、a:visited、a:hover、a:active
  5. 解决pytorch softmax警告UserWarning: Implicit ....Change the call to include dim=X as an argument.
  6. java跑批任务调度_任务调度框架Quartz实现的跑批程序(四)
  7. 吴恩达机器学习作业5——偏差与方差
  8. 程序员高效学习的六原则
  9. windowsxp中linq 指定的转换无效_.NET Core 3.0 中的新变化
  10. Face Recognition 人脸识别该如何测试
  11. 计算机网络连接无线局域网,无线局域网的连接方法
  12. 【论文解读--Xdog】(宇树科技鼻祖)新型电驱式四足机器人研制与测试
  13. Onvif协议学习:14、球机云台控制PTZ
  14. linux的pv原语
  15. django databased is locked
  16. 【J】BeanCreationException: Error creating bean with name 'shiroFilter' defined in class path resource
  17. R数据分析:潜增长模型LGM的做法和解释,及其与混合模型对比
  18. NSIS安装包开发笔记(一):NSIS介绍、使用NSIS默认向导脚本制作Windows安装包
  19. 今天开始学Convex Optimization:引言、第1章基本概念介绍
  20. c语言中move指令说明,MOVE指令使用

热门文章

  1. FileUpload时用Javascript检查扩展名是否有效
  2. vue项目(webpack+mintui),使用hbuilder打包app - 小小人儿大大梦想 - 博客园
  3. [pytorch、学习] - 9.1 图像增广
  4. javascript --- 将DOM结构转换成虚拟DOM 虚拟DOM转换成真实的DOM结构
  5. es6 --- 对任意对象部署可遍历接口
  6. Android JNI开发系列(二)HelloWorld
  7. 使用JOTM实现分布式事务管理(多数据源)
  8. 删除win10自带的软件
  9. 腾讯开源手游热更新方案,Unity3D下的Lua编程
  10. win32 段寄存器怎么寻址