知识大全 Java 传递对象给期望原始类型参数的方法

Posted

篇首语:生活的理想,就是为了理想的生活。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java 传递对象给期望原始类型参数的方法相关的知识,希望对你有一定的参考价值。

Java 传递对象给期望原始类型参数的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  术语 autoboxing 是指创建一个代表一个原始类型数据的对象 术语 unboxing 是指创建一个代表一个对象的值的原始类型数据 Java 中新的 autoboxing/unboxing 特性允许我们传递原始类型参数给那些期望包装对象的方法 同样地 也允许我们传递对象给那些期望原始类型参数的方法     例如 假设我们有一个方法 foo(Interger val) 在 Java 之前 为了传递一个一个原始类型值给这个方法 需要通过以下方式来做到     int primitiveVal = ;  foo(Integer valueOf( ));     现在在 Java 中 可以使用原始类型数据直接调用 foo 而无须创建包装类 Integer 的实例 如下     foo(primitiveVal);     反之如果我们有一个期望原始类型参数的方法 bar(int val) 一样有一种简单的方法处理     下面是老的方法     Integer wrapper = new Integer( );  bar(wrapper intValue());     而这里是新方法     bar(wrapper);     编译器已经为我们做了辅助工作 如果分析由编译器为下面这个类创建的代码 你会发现编译器使用了在老版本中完全一样的调用方式 这里有对 BoxingTip 类运行 javap c 的输出结果的摘要     public static void main(java lang String[]);      : bipush     : istore_    : iload_    : invokestatic  # ; //Method   java/lang/Integer valueOf:(I)Ljava/lang/Integer;   : invokestatic  # ; //Method foo:(Ljava/lang/Integer;)V   : aload_    : invokevirtual  # ; //Method java/lang/Integer intValue:()I   : invokestatic  # ; //Method bar:(I)V   : return       在第 行 编译器调用了 Integer 的静态方法valueOf() 为 foo() 方法提供需要的值 在第 行 调用了现有 Integer 实例的 intValue() 方法提取 int 值传递给 bar() 方法 我们可以使用编译器提供的 autoboxing/unboxing 特性 而无须理解背后究竟发生了什么 但是知道编译器为你做了什么始终都不是一件坏事     在 Java 中这个新特性不仅仅是提供了句法方便 它是进化 而不是革命 但是它是新时期的到来 它将会使编写 Java 代码更加容易     public class BoxingTip     public static void main(String []args)       Integer wrapper = new Integer( );      int primitiveValue = ;            foo(primitiveValue);            bar(wrapper);          static void foo(Integer val)       System out println( val);            static void bar(int val)       System out print(val);            注意 这个提示中的代码在 Windows 下使用 Java build beta b c 编译通过 如果要编译这段代码 必须使用 javac source 选项 cha138/Article/program/Java/hx/201311/26597

相关参考

知识大全 轻松处理命令行参数

  轻松处理命令行参数        作者翻译Java研究组织-公飞    TuesdayApril:PM    你能够轻松地使用java标准的传递标志的方式获得一个简单且功能强大的命令行应用事实上传

知识大全 改写equals的时候遵守约定

  在java里面objectequals()的概念是两个引用指向的是同一个对象即两者指向同一个对象才equals()但是也有特例比如说一些原始类型integerstring等属于值相等就是说值相等也

知识大全 命令行参数

  我们把main成员函数的参数args称为命令行参数args可以用来接收外界传给Java应用程序的参数下面我们举一个例子来看看参数传递的具体过程  classdoRect      publicst

知识大全 c#学习体会:使用 ref 和 out 传递数组

  c#学习体会:使用ref和out传递数组(downmoon)希望与大家分享与所有的out参数一样在使用数组类型的out参数前必须先为其赋值即必须由接受方为其赋值例如public stat

知识大全 c#中通过值和引用传递参数

  在C#中既可以通过值也可以通过引用传递参数通过引用传递参数允许函数成员(方法属性索引器运算符和构造函数)更改参数的值并保持该更改若要通过引用传递参数请使用ref或out关键字为简单起见本主题的示例

知识大全 学习反射中的动态创建对象

  Assembly的CreateInstance有三个重载第一个参数需要是一个字符串表示的完整的类名第二个参数是一个bool类型如果为true表示对第一个参数不区分大小写  第三个影响执行搜索的方式

知识大全 Jsp传递中文参数详解

Jsp传递中文参数详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目前在jsp页面中传递中文

知识大全 VisualC#多线程参数传递浅析

VisualC#多线程参数传递浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我们在写Remot

知识大全 如何解决JSP参数传递乱码

如何解决JSP参数传递乱码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  计算机生于美国英语是他

知识大全 处理QueryString函数汉字参数传递错误

处理QueryString函数汉字参数传递错误  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lis