怀疑在Wrapper类

时间:2010-10-22 06:13:44

标签: java

我觉得我对包装类有了一些了解。我的问题是方法何时会出现对象? 只有这样我们才需要使用包装类吗? 一般来说,一种方法需要一些参数 int add(int a); 这是“int a”原始值吗? 例如

3 个答案:

答案 0 :(得分:3)

Java primitive typesintdoublebytebooleancharshort,{{1} }和long

如果函数签名需要float,那么您将传递一个原语。例如,如果它需要int,则需要包装类Integer。在Java 1.5中,自动装箱可以生效并自动将基元包装到其包装类型中。也可以进行拆箱,其中包装类被转换为其原始等价物,用于期望基元的方法。

Integer

答案 1 :(得分:0)

你说你理解包装类。那应该没有什么可解释的。该方法需要一个包装类,当方法签名说它时。如果参数类型为Integer,则该方法需要包装类。如果int,则需要原始值。

答案 2 :(得分:0)

请记住,包装模式的另一个名称是adapter模式 我们在java中看到的包装器模式的第一个例子是原始包装类:

  • java.lang.Integer wrapps int
  • java.lang.Character包装char
  • java.lang.Long包裹很长

当您需要基元的对象表示时,这些包装器很有用,例如当您需要将它们存储在集合中时。
当您需要规范跨不同类的公共接口时,Wrappers非常有用,尤其是那些您无法更改的接口,因为例如它们可能是第三方库的一部分。

例如,假设您需要处理将要参加活动的人员列表,但是您可能拥有多个信息来源以及他们自己对某个人的陈述。

  1. 您的处理方法接受Attendee个对象的列表。
  2. 第一个来源为您提供了Employee个对象的列表 2.1 EmployeeWrapper包含Employee对象,并实现或扩展Attendee
  3. 第二个来源为您提供了客户对象列表
    3.1 CustomerWrapper包含Customer对象,并实现或扩展Attendee
  4. 第三个列表为您提供了VendorContact个对象的列表 4.1 VendorWrapper包含VendorContact对象,并实现或扩展Attendee
  5. 现在,您已对不同类型的Attendee个对象进行了规范化表示。