<分区>
我看到这段代码,有点困惑
java.lang.String s = new String("hello");
我不确定什么变量 s 被初始化为 java.lang.String ,这个 vs String hold = "hello"的目的是什么。我试图查看一些文档,但找不到任何内容。
<分区>
我看到这段代码,有点困惑
java.lang.String s = new String("hello");
我不确定什么变量 s 被初始化为 java.lang.String ,这个 vs String hold = "hello"的目的是什么。我试图查看一些文档,但找不到任何内容。
最佳答案
这真是糟糕的编程风格
java.lang.String s = new String("hello");
请记住,java.lang
中的所有类都是自动导入的。如果您在同一个包中有一个名为 String
的类,它也会被导入,但隐藏 java.lang.String
类。这可能是完全限定类型的原因,例如
java.lang.String s;
但在这种情况下,您只能为它分配一个 java.lang.String
引用,因为该类是 final
,因此不能扩展。常规的做法是
java.lang.String s = new java.lang.String("hello");
如果你问的是
java.lang.String s = new String("hello");
对比
java.lang.String s = "hello";
然后检查其他答案或副本。
关于java - 了解 java.lang.String s = new String ("hello") 和 String hold = "hello"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19938482/
相关文章:
java - 安卓)java.lang.NoClassDefFoundError : com. google.android.gms.internal.zzno
android - LandScape 模式下的 ActionBarDrawerToggle.syncState() 异常
java - Curator Framework 绕过 Zookeeper ACL 设置
java - android中如何将二进制字符串数据转换为String
android - 在 Android Studio 3.6 中使用 Import Sceneform Asset 导入 FBX 时出错