现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到...但是殊不知,TabHost并非是那么的简单,它的可扩展性非常的差,不能随意地定制Tab项显示的内容,而且运行还要依赖于ActivityGroup。...接下来根据传入的index参数判断出选中的是哪一个Tab项,并改变该Tab项的图标和文字颜色,然后将相应的Fragment添加到界面上。...这是因为replace()方法会将被替换掉的那个Fragment彻底地移除掉,该Fragment的生命周期就结束了。...整个Tab的界面有点类似于QQ的感觉,并且可以通过点击不同的Tab来切换界面,如下图所示: ? 另外,这个Tab界面即使在横屏的情况下也有不错的适用性哦,如下图所示: ?
从Groovy 1.8开始,我们可以使用@ToString注释来轻松创建toString()方法。 我们只需要在类定义中添加注释,我们就可以获得类的属性的格式良好的输出。...我们甚至可以自定义我们想要在输出中看到的内容。 如果我们添加属性includeNames=true,我们可以在toString()输出中看到我们类的属性的名称。...要排除属性,我们使用属性excludes,并在输出中用逗号分隔我们不想要的属性的名称。 最后,我们可以包含一个超类的属性,其注释属性为includeSuper=true。...让我们看一下@ToString中的几个样本: // Most simple implementation of toString. import groovy.transform.ToString @...= new Person(name: 'mrhaki', likes: ['Groovy', 'Java']) assert person.toString() == 'Person(mrhaki,
谁在关心toString的性能?没有人!除非当你有大量的数据在批量处理,使用toString产生了许多日志。...然后,你去调查为何如此之慢,才意识到大部分的toString方法使用的是introspection,它其实是可以被优化的。...如果你想知道哪种toString的实现方式会更高效,不要去猜测,而是去测试!这时你需要用到JMH。我曾在博客上写过有关它的文章,所以这里不再细谈JMH如何工作的细节。...在该基准测试中,我创建了一个复杂的对象图(使用继承、集合等等),而且我使用到了由IDE生成的所有不同toString的实现方式,来看看哪一种性能更好。就一条经验法则:简洁。...用Objects.toString连接字符串 Java SE 7带来了Objects类和它的一些静态方法。Objects.toString的优点是它可以处理null值,甚至可以给null设置默认值。
Object 类中定义有 public String toString() 方法,其返回值是 String 类型,描述当前对象的有关信息; 2....在进行 String 与其它类型数据的连接操作时(如:System.out.println("info"+person)),将自动调用该对象类的 toString() 方法; 3....可以根据需要在用户自定义类型中重写 toString() 方法,如: class Dog { public String toString() { return "I'm a good...如果在 Dog 类中不重写 toString() 方法,也即: class Dog { // public String toString() { // return "I'm a good dog
对于我这种用惯了C++的人来说,突然见到有人写java程序的时候竟然将整数和String类型的变量使用+连接到一起,感到非常奇怪,追究了下原因。...原来所有的java对象都有toString()方法,而某些时候这个方法会自动被调用的。...1 class toString_test 2 { 3 public static void main(String[] args) 4 { 5 int year...+month;其实就自动被转换成了str=str+year.toString()+"."...+month.toString(); 此外像System.out.println(x);如果x是非String 类型的变量,在这里也会自对调用toString()方法。
前言 有好多人会用idea将bean类重写toString()的方法,但是好多人其实还不知道其实toString()是可以自己自定义模板的,可以自定义生成你想要的格式,然后一键生成。...一、idea重写toString()的方法 在idea中,我们知道,按住ALT+Insert可以重新toString()方法 ? 然后大家可能默认的模板是:String concat(+) ?...生成的格式是这样的,但是有时候我们想要自定义生成的toString()格式,比如JSON格式,那要怎么设置呢? ?...二、重写toString()为JSON格式 大家可以点击右边的Settings 按钮,选中Templates,点击添加按钮,新建一个 名字为JSON或者你自己想起的模板名字 ? ?...然后将下面的内容,复制到你刚新建的模板名字的内容里,记得点击Apply,点击OK之后,然后就可以选中你刚才自己建的那个模板的名字,一键生成toString()方法了 public java.lang.String
所有对象继承了两个转换方法: 第一个是toString(),它的作用是返回一个反映这个对象的字符串 第二个是valueOf(),它的作用是返回它相应的原始值 一般来说,对象到字符串的转换经过了如下步骤:...1.如果对象具有toString()方法,则调用这个方法。...2.如果对象没有toString()方法,或者这个方法并不返回一个原始值,那么js将调用valueOf()方法。...3.否则,js无法从toString()或者valueOf()获得一个原始值,因此这时它将抛出一个类型错误异常。
hello"); c.add("world"); c.add("java"); System.out.println(c); //[hello, world, java] 为什么c输出的不是地址值呢...A:Collection c = new ArrayList(); 这是多态,所以输出c的toString()方法,其实是输出ArrayList的toString() B:看ArrayList...的toString() 而我们在ArrayList里面却没有发现toString()。...C:看toString()的方法源码如下: public String toString() { Iterator it = iterator(); //...it.hasNext()) // [hello, world, java] return sb.append(']').toString
的toString方法有一个bug。...就是对于内置泛型类toString方法显示的内容不正确: 下面的代码,返回java.util.Map.entrySet()方法的返回类型: Type returnType = java.util.Map.class.getMethod...,就是程序员笔误,该用Class.getSimpleName()错误的用了Class.getName()方法,导致,参见下面toString()方法的注释: public String toString...first = false; } sb.append(">"); } return sb.toString...(); } 这是个非常小的Bug,如果你的项目中不关注也就过去了。
如果我们的对象为空对象的时候,我们再使用 toString() 方法,我们将会得到空对象的异常。 这个对象有可能就是 String 对象,也有可能是其他的对象。...如何让 Java 能够 toString 又不抛出异常呢? 解决方法 我们可以使用 Apache commons.lang3 提供的 toString() 方法。...ObjectUtils.toString(obj, ()->StringUtils.EMPTY); 如果我们输入的对象为 NULL 的话,上面的语句将会输出一个指定的字符串而不抛出空异常。...如果你使用的是 Java 7 以上版本的话,建议你使用 java.util.Objects.toString 方法。...第二个方法是如果为空的话,将会用另外一个字符串去替换。 总结 通过上面的代码和用例,我们对在对象 toString 的时候可能出现的 Null 对象异常情况进行了解说。
本文告诉大家经常使用的 NameSyntax 拿到值的 ToString 和 ToFullString 方法的区别 从代码可以看到 NameSyntax 的 ToString 和 ToFullString...方法是调用 Green 的 ToString 和 ToFullString ,所以具体还需要进入 Green 看是如何写 ?...这里 NameSyntax 的 Green 是 GreenNode ,从 代码可以看到两个方法的区别 ?...使用 ToFullString 会添加前后的空白代码,使用 ToString 的就会去掉前后空白代码,如获取 using lindexi.wpf.Framework 的代码,使用两个不同的函数可以获得不同的值...所以 ToFullString 拿到的变量使用 Trim 就是 ToString 拿到的变量 如果好奇本文开始说的 Green 是什么,请看 理解 Roslyn 中的红绿树(Red-Green Trees
对ToString("X2 ")的理解 /// /// 将byte型转换为字符串 /// ///...("X2")); } //将此实例的值转换为System.String return sOutput.ToString();...} /// /// 对接收到的数据进行解包(将接收到的byte型数组解包为Unicode字符串) /// ToString("X2") 为C#中的字符串格式控制符 return temp; } ======================...================================ ToString("X2") 为C#中的字符串格式控制符 X为 十六进制 2为 每次都是两位数 比如 0x0A ,若没有
2.ValueOf() 方法比如说 Integer.valueOf()是把String类型转化为Integer类型(注意:是Integer类型,而不是int类型,int类型是表示数字的简单类型,Integer...类型是一个引用的复杂类型) 如: String a= “123”; Integer c =Integer.valueOf(a); //Integer类型可以用intValue方法转化为int类型...int b =c.intValue(); 这时候这个b就等于123了 String.valueOf(int)就是返回 int 参数的字符串表示形式。...该表示形式恰好是单参数的 Integer.toString 方法返回的结果。 3. toString() 可以把一个引用类型转化为String字符串类型。...下面举个例子与2相反,把Integer转化为String类型: Integer a = new Integer(123); String b =a.toString(); 这时候b就是 “123”
: 所有对象继承了两个转换方法: toString(): 它的作用是返回一个反映这个对象的字符串 valueOf():它的作用是返回它相应的原始值 toString() toString()函数的作用是返回...JavaScript中object默认的toString()方法返回字符串”[object Object]“。定义类时可以实现新的toString()方法,从而返回更加具有可读性的结果。...JavaScript对于数组对象、函数对象、正则表达式对象以及Date日期对象均定义了更加具有可读性的toString()方法: Array的toString()方法将返回以逗号分隔的数组成员。...()方法与Function的toString()方法类似,将返回正则表达式的文本定义。...这个数组被alert的时候会调用toString()函数,所以不是valueOf()和toString()函数相同,而是间接的调用了toString()函数!
BigDecimal 的 toString() 方法将会把 BigDecimal 通过字符串的方式输出。这个方法将会在必要的时候使用指数进行输出。...() method String numberStr = bigNumber.toString(); // Print the result logger.info("{}",...() method logger.info("{}", bigNumber.toString()); logger.info("{}", bigNumber.toEngineeringString...方法,分别是 toString()、 toEngineeringString() 、toPlainString()....从 BigDecimal 的注释中可以看到这3个方法的区别: toString() – 在必要的时候使用科学计数法 toEngineeringString() 在必要的时候使用工程计数法。
3)总结 valueOf:返回一个 Number 对象的基本数字值。 toString():把数字转换为字符串,使用指定的基数。...七、toString() VS toLocalString() toLocalString()是调用每个数组元素的 toLocaleString() 方法,然后使用 地区特定的分隔符把生成的字符串连接起来...toString()方法获取的是String(传统字符串),而toLocaleString()方法获取 的是LocaleString(本地环境字符串)。...LocaleString()会根据你机器的本地环境来返回字符串,它和toString()返回的 值在不同的本地环境下使用的符号会有微妙的变化。...所以使用toString()是保险的,返回唯一值的方法,它不会因为本地环境的改变而 发生变化。如果是为了返回时间类型的数据,推荐使用LocaleString()。
本文告诉大家经常使用的 NameSyntax 拿到值的 ToString 和 ToFullString 方法的区别 从代码可以看到 NameSyntax 的 ToString 和 ToFullString...方法是调用 Green 的 ToString 和 ToFullString ,所以具体还需要进入 Green 看是如何写 ?...使用 ToFullString 会添加前后的空白代码,使用 ToString 的就会去掉前后空白代码,如获取 using lindexi.wpf.Framework 的代码,使用两个不同的函数可以获得不同的值...所以 ToFullString 拿到的变量使用 Trim 就是 ToString 拿到的变量 如果好奇本文开始说的 Green 是什么,请看 理解 Roslyn 中的红绿树(Red-Green Trees...) - walterlv ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/Roslyn-NameSyntax-%E7%9A%84-ToString
昨天看到 “性能相差7千倍的ToString方法”这篇文章,对于作者这种良好的性能意识和探索精神很佩服,以前还真没注意到这点。...不过,用switch的做法,个人觉得虽然性能上去了,但是可维护性就下来了,以后该枚举要增加或删除一项,这段switch代码都要改一下,其实该问题的关键就是反射带来的性能损耗,在调用枚举的ToString...:(asp.net页中测试的,主要只是对比一下跟传统ToString方法的差异而已) protected void Page_Load(object sender, EventArgs e)...for (i = 0; i < _max; i++) { _temp = TestClass.EnumLoginError.用户被锁定.ToString...但是也应该看到,这是一种空间换时间的做法,避开了反射,但是系统需要额外存储一个字典对象,占用的内存要比原来多一些。 最后:本文仅为技术探讨,没有哪个最好之说,具体如何使用,大家自己酌情考虑。
BigDecimal 的 toString() 方法将会把 BigDecimal 通过字符串的方式输出。这个方法将会在必要的时候使用指数进行输出。...// Converting to BigDecimal BigDecimal bigNumber = new BigDecimal(input); // Apply toString...() method String numberStr = bigNumber.toString(); // Print the result logger.info...方法,分别是 toString()、 toEngineeringString() 、toPlainString()....从 BigDecimal 的注释中可以看到这3个方法的区别: toString() – 在必要的时候使用科学计数法 toEngineeringString() 在必要的时候使用工程计数法。
假设double test=343392590725.6758 此double值,其共16位数字,整数部分12位,小数部分4位 然后测试结果就是可以再多输出一位小数的: double less1BitDouble...= less1BitDouble.ToString("F"); //"343392590725.68" string less1BitDoubleStrF6 = less1BitDouble.ToString...test2=test.ToString("F6");//结果为343392590725.675800,保留小数点后6位,不足用0补上 string test3=test.ToString("G");/.../结果为343392590725.6758,默认输出原先的,多余double最多15个数字 string test4=test.ToString("0.00")//结果为343392590725.68,...("F6"); //1234.567890 结果很明显,是可以安装所期望的正常输出的: F:默认是2位小数点 F6:输出小数点后6位,不够的话用0补齐 G:默认输出原先的,保留小数点后面的位数(对于double