将变量直接赋值给包装类是Java的一个好习惯吗?

时间:2015-10-29 13:22:19

标签: java class helper

当我慢慢浏览java教程时,我遇到了java助手类。代码是

async def new_sleep():
    await asyncio.sleep(2)

class Waiting:
    def __await__(self):
        @asyncio.coroutine
        def wrapper(coro):
            return (yield from coro)
        return (yield from wrapper(new_sleep()))

但是,即使直接分配给辅助类,它也能正常工作。

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)); int等。它被认为是一种不好的做法吗?如果是这样,为什么?

谢谢。

2 个答案:

答案 0 :(得分:3)

Character将原始的双字节char包装在一个对象中。这是多余的。 你可以写

char myBigChar = Character.toUpperCase('b');

所以这是效率问题。

顺便说一句,String已经是一个对象了,并没有这种冗长。

答案 1 :(得分:3)

如果我理解你在问什么,你想知道包装器Object类与其原始对应物的实用程序。

包装类有许多优点:

  • 它们可以用作通用类型
  • 他们可以入罪
  • 它们为其包装的原始值和其他静态方法提供实用程序方法

在你问题的另一面,有一个名为拳击/拆箱的概念。

当您:Character c = 'a';时,您将 autoboxing 原始值'a'添加到其包装器Character类中。

如果您使用char a = c;之类的内容执行该任务,则会自动将包装器的值拆箱到其原始对应项中。