在Java中初始化String

时间:2011-08-11 05:00:39

标签: java string

使用:

初始化String时有什么不同
  
      
  1. java.lang.String中
  2.   
  3. String(only)
  4.   

为什么要写完整包的名称?

4 个答案:

答案 0 :(得分:2)

没有区别。 java.lang包在所有java程序中隐式导入。

答案 1 :(得分:1)

如果没有定义自定义“String”类,则没有区别。

但是,如果您定义了自己的“String”类。然后你需要额外的java.lang来识别正确的String类。

答案 2 :(得分:1)

  

为什么要写完整包的名称?

在这种情况下,你不应该这样做。

正如@Asaph所述,java.lang隐式导入到每个类中。这意味着您的代码可以通过简单的类名称引用String和其他类,例如BooleanSystemNullPointerException

需要通过其完全限定名称(String)引用java.lang.String的唯一情况是:

  • 如果您在某些反思API中将类名称作为String提供,或

  • 如果你愚蠢地写了一个你自己的类,其简称是String;例如com.example.stupid.String,您已将 版本的String明确导入其他类。

最佳做法是通过简单名称引用java.lang中的类,而不是在其他包中使用相同的简单名称定义自己的类。


在一般情况下,这两种形式的含义完全相同,并且会为您提供完全相同的编译代码:

// version 1
package com.example.bar;
import com.example.foo.Foo;
public class Bar {
    private Foo myFool;
    ...
}

// version 2
package com.example.bar;
public class Bar {
    private com.example.foo.Foo myFool;
    ...
}

答案 3 :(得分:0)

没有区别

我们编写包以将其与项目中类似命名的类(如果有)区分开来。例如,如果您的项目还有一个名为String的类,则java将不知道您要使用哪个String类 - 您的或者内置的java类。