Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,将变量直接分配给包装类是一种好的做法吗?_Java_Class_Helper - Fatal编程技术网

在Java中,将变量直接分配给包装类是一种好的做法吗?

在Java中,将变量直接分配给包装类是一种好的做法吗?,java,class,helper,Java,Class,Helper,在我慢慢阅读java教程的过程中,我遇到了java助手类。代码是 public static void main(String args[]) { char myLittleChar = 'b'; char myBigChar = Character.toUpperCase(myLittleChar); System.out.println(myBigChar); 但是,即使直接指定给帮助器类,它的工作原理也是一样的 Character c = 'a'; System.out.println(

在我慢慢阅读java教程的过程中,我遇到了java助手类。代码是

public static void main(String args[]) {
char myLittleChar = 'b';
char myBigChar = Character.toUpperCase(myLittleChar);
System.out.println(myBigChar);
但是,即使直接指定给帮助器类,它的工作原理也是一样的

Character c = 'a';
System.out.println(c.toUpperCase(c));
同样的道理也适用于short或float

然而,我在任何教程或任何示例代码中都没有遇到过这么多,并且被声明为
int
short
等。这被认为是一种不好的做法吗?若然,原因为何


谢谢。

字符将基本的两字节字符包装在对象中。这是多余的。 你可以写

char myBigChar = Character.toUpperCase('b');
因此,这是一个效率问题


顺便说一句,字符串已经是一个对象了,并且没有这种冗长性。

如果我理解您的要求,那么您需要了解包装器
对象的实用程序
类与它们的原始对应项

包装类有许多优点:

  • 它们可以用作泛型类型
  • 它们可以为空
  • 它们在包装的原语值和其他静态方法上提供实用方法
  • 等等
在你问题的另一面,有一个叫做装箱/拆箱的概念

当你:
字符c='a',您正在将原语值
'a'
自动装箱到其包装器
字符
类中


如果您在该赋值后面加上如下内容:
chara=c,则自动将包装器的值解装箱到其原始对应项中

当您谈到
Helper类时,我假设您指的是原语的包装类。使用它们本身并不坏,但您应该知道,您通过创建对象(即使您不调用显式构造函数)。因为这通常会对性能造成很大的影响,所以要尽量避免。c.toUpperCase(c)是一种不好的做法,因为它是对静态方法的调用,必须在类而不是实例上完成@Turing85我跟随的视频教程说的是
Helper类
,而不是
wrapper类
,因此我不知道也不确定哪个术语是正确的。表演部分是有意义的。谢谢你的善意解释。@rlm谢谢你的善意解释。我在寻找原因来理解为什么这是一种不好的做法。我想,正如图灵85所说,这是对性能的冲击。我们谈论的不是同一件事:图灵谈论的是使用“char”而不是“Character”,我谈论的是使用实例调用静态方法。。。请看下面的帖子来演示我所说的: