【发布时间】:2015-10-29 13:22:18
【问题描述】:
随着我慢慢学习 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 等。这是否被认为是一种不好的做法?如果有,为什么?
谢谢。
【问题讨论】:
-
当您谈到
Helper classes时,我假设您指的是原语的包装类。使用它们本身并不坏,但您应该知道您是通过autoboxing创建对象(即使您不调用显式构造函数)。由于这通常会对性能造成很大影响,因此应尽量避免。 -
c.toUpperCase(c) 是一种不好的做法,因为它是对静态方法的调用,并且必须在 Class 而不是实例上完成!
-
@Turing85 我关注的视频教程是
Helper class,而不是wrapper class,因此我不知道并且不确定哪个是正确的术语。性能部分是有道理的。感谢您的友好解释。 -
@rlm 感谢您的友好解释。我一直在寻找理解为什么是不好的做法的原因。我想,正如 Turing85 所说,这是对性能的影响。
-
我们说的不是同一件事:图灵说的是用'char'代替'Character',我说的是用实例调用静态方法……看这个线程演示我说的是:stackoverflow.com/questions/7884004/…