在查找为什么使用包装类时,我一直看到以下内容:
如果我们希望修改传递给方法的参数(因为原语类型是通过值传递的),则需要
对象。
如果我们将参数设置为返回值,则可以修改java中的primitive
传递
这句话到底是什么意思?有人能举个例子吗?
我搜索了为什么使用包装类,并得出如下结论:
他们都说同样的话。这是完全错误的,还是他们想说别的什么?
发布于 2021-10-08 18:02:09
引用自https://www.tutorialspoint.com/why-do-we-need-a-wrapper-class-in-java
如果我们希望修改传递给方法的参数(因为原语类型是由值
传递的),那么对象是必需的。
引用自https://www.geeksforgeeks.org/need-of-wrapper-classes-in-java/
如果我们希望修改传递给方法的参数(因为原语类型是通过值传递的),则需要
对象。
引用自https://www.javatpoint.com/wrapper-class-in-java
但是,如果我们在一个对象中转换原语值,它将改变原始值。
在包装方面,它们确实是完全错误的。原语类型的包装类都是不可变的,一旦创建了包装器对象(当然不包括反射),包装器中的实际(原始类型)值就不能更改。因此,即使您有以下代码块:
Integer outside = Integer.valueOf(42);
someMethod(outside);和
public static void someMethod(Integer inside) {
}变量outside和inside将引用Integer.valueOf()创建的相同对象,这无助于更改outside变量本身的引用值或outside引用的对象。
https://stackoverflow.com/questions/69499268
复制相似问题