仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 714|回复: 16
打印 上一主题 下一主题

[学习教程] 发布一篇将java对象转为java String的几种经常使用办法分析

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。
在java项目标实践开辟和使用中,经常必要用到将对象转为String这一基础功效。本文将对经常使用的转换办法举行一个总结。经常使用的办法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。上面对这些办法逐一举行剖析。
办法1:接纳Object#toString()办法
请看上面的例子:
Objectobject=getObject();
System.out.println(object.toString()); 注1
在这类利用办法中,由于java.lang.Object类里已有public办法.toString(),以是对任何严厉意义上的java对象都能够挪用此办法。但在利用时要注重,必需包管object不是null值,不然将抛出NullPointerException非常。接纳这类办法时,一般派生类会掩盖Object里的toString()办法。
办法2:接纳范例转换(String)object办法
这是尺度的范例转换,将object转成String范例的值。利用这类办法时,必要注重的是范例必需能转成String范例。因而最好用instanceof做个范例反省,以判别是不是能够转换。不然简单抛出CalssCastException非常。别的,需出格当心的是因界说为Object范例的对象在转成String时语法反省其实不会报错,这将大概招致潜伏的毛病存在。这时候要分外当心。如:
Objectobj=newInteger(100);
String strVal=(String)obj;
在运转时将会堕落,由于将Integer范例强迫转换为String范例,没法经由过程。可是,
Integerobj=newInteger(100);
String strVal=(String)obj;
如是格局代码,将会报语法毛病。
别的,因null值能够强迫转换为任何java类范例,(String)null也是正当的。
办法3:接纳String.valueOf(Object)
String.valueOf(Object)的基本是Object#toString()。但它与Object#toString()又有所分歧。在后面办法1的剖析中提到,利用后者时需包管不为null。但接纳第三种办法时,将不必忧虑object是不是为null值这一成绩。为了便于申明成绩,我们来剖析一下相干的源代码。Jdk里String#valueOf(Object)源码以下:
  /**
  *ReturnsthestringrepresentationoftheObjectargument.
  *
  *@param obj anObject.
  *@return iftheargumentisnull,thenastringequalto
  *"null";otherwise,thevalueof
  *obj.toString()isreturned.
  *@see  java.lang.Object#toString()
  */
  publicstaticStringvalueOf(Objectobj){
  return(obj==null)?"null":obj.toString();
}
从下面的源码能够很明晰的看出null值不必忧虑的来由。可是,这也恰好给了我们隐患。我们应该注重到,当object为null时,String.valueOf(object)的值是字符串”null”,而不是null!!!在利用过程当中牢记要注重。试想一下,假如我们用if(String.valueOf(object)==null){System.out.println(“传进的值是null!”);}如许的语句将大概会产生甚么成绩。再想一下,向把持台输入时,在视觉上以下语句在实行的了局上有甚么分歧:
System.out.println(String.valueOf((Object)null)); 注2
System.out.println((Object)null); 注2
我们看到的输入将是千篇一律的工具:null,但它们意义不异吗?
注1:光就System.out.println的利用来讲,语句System.out.println(object.toString());换为System.out.println(object);更好。此处如是用法次要是为了申明Object#toString()的用法。
注2:保举利用System.out.println(String.valueOf((Object)null));不保举利用System.out.println(String.valueOf(null));在利用重载办法时,如许做是一个好的习气。
以上是对object对象转换为String的一些总结。

java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-20 23:53:06 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
admin 该用户已被删除
板凳
发表于 2015-1-21 13:36:06 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
再见西城 该用户已被删除
地板
发表于 2015-1-21 23:59:06 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
愤怒的大鸟 该用户已被删除
5#
发表于 2015-1-25 19:27:19 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
小妖女 该用户已被删除
6#
发表于 2015-1-25 21:22:33 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
7#
发表于 2015-1-25 22:25:28 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
活着的死人 该用户已被删除
8#
发表于 2015-1-31 06:42:25 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
飘灵儿 该用户已被删除
9#
发表于 2015-1-31 07:03:25 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
因胸联盟 该用户已被删除
10#
发表于 2015-2-2 12:48:28 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
海妖 该用户已被删除
11#
发表于 2015-2-7 19:58:57 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
透明 该用户已被删除
12#
发表于 2015-2-23 09:25:23 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
山那边是海 该用户已被删除
13#
发表于 2015-2-26 08:46:20 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
爱飞 该用户已被删除
14#
发表于 2015-2-28 04:46:28 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
小魔女 该用户已被删除
15#
发表于 2015-3-9 21:08:43 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
蒙在股里 该用户已被删除
16#
发表于 2015-3-19 20:51:51 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
再现理想 该用户已被删除
17#
发表于 2015-4-2 11:28:12 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 15:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表