什么是包装器类? 这样的类有什么用处呢?


当前回答

有几种设计模式可以称为包装器类。

请参阅我对“代理、装饰器、适配器和桥接模式有何不同?”

其他回答

有几种设计模式可以称为包装器类。

请参阅我对“代理、装饰器、适配器和桥接模式有何不同?”

顾名思义:一个类将另一个类或API的功能“包装”在一个更简单或只是不同的API中。

参见:适配器模式、门面模式

包装器类是一个包装另一个类并提供客户端和被包装的原始类之间的抽象的类。

包装器类的出现是为了满足程序员的基本需求——即在只允许使用object的地方使用原始值。顾名思义,包装器类包装一个基本值,并将该值保存在Object中。因此,在所有不允许使用原语的地方——比如泛型、hashmap-key、数组列表等——程序员现在可以选择提供这些原语值作为相应的包装器类型。

此外,这些包装器类型有许多实用工具方法,用于从基本类型转换到相应的包装器类型和返回,以及从字符串转换到包装器类型和返回。

我在我的博客上写了一篇关于包装器类的详细文章,深入解释了包装器类型的概念——http://www.javabrahman.com/corejava/java-wrapper-classes-tutorial-with-examples/ (披露-这个博客是我所有的)

包装器类是唯一用于保存某些东西并向其添加一些功能的类。 在Java中,由于原语(如int,float,char…)不是对象,所以如果你想把它们当作一个对象,那么你必须使用包装类。 假设你想创建一个int型的Vector,问题是Vector只保存对象而不是原语。所以你要做的就是把所有的整型放在一个Integer包装器中并使用它。例子:

int number = 5;
Integer numberWrapped = new Integer(number);
//now you have the int in an object.
//and this is how to access the int value that is being wrapped.
int again = numberWrapped.intValue();