什么是包装器类? 这样的类有什么用处呢?
当前回答
包装器类是唯一用于保存某些东西并向其添加一些功能的类。 在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();
其他回答
一个包装类不一定需要包装另一个类。它可能是一个API类,在一个dll文件中包装功能。
例如,创建一个dll包装类可能非常有用,它负责所有dll的初始化和清理,并创建类方法来包装从GetProcAddress()创建的函数指针。
干杯!
包装器类通常是一个具有对象作为私有属性的类。包装器实现了私有对象的API,所以它可以作为私有对象的参数传递。
假设您有一个集合,并且希望在向其中添加对象时使用某种转换—您编写一个具有集合的所有方法的包装器类。当调用add()时,包装器转换参数,而不是仅仅将它们传递到私有集合中。
包装器可以在任何可以使用集合的地方使用,私有对象仍然可以有其他对象引用它并读取它。
包装类是一个“包装”其他东西的类,就像它的名字一样。
它更正式的定义是实现适配器模式的类。这允许您将一组api修改为更可用、更可读的形式。例如,在c#中,如果你想使用本机Windows API,它有助于将它包装成一个符合. net设计准则的类。
有几种设计模式可以称为包装器类。
请参阅我对“代理、装饰器、适配器和桥接模式有何不同?”
让一个包装类变得健康并不是一件容易的事情。 了解包装器类是如何被其他人设计的也不是一件容易的事情。 因为这是想法,不是代码。 只有理解了理念,才能理解包装。