是否可以在没有= new Obj()的情况下实例化新对象?

票价:

因此,String不是原始类型,而是Obj x = new Obj ();通常必须以以下形式创建类和类的对象但是,可以通过说来创建字符串String x = "...";,这是首选方法,而不是String x = new String ("...");

所以我想知道为什么允许使用字符串,并且如果构造函数仅需要单个参数,是否可以以类似的方式创建其他类的对象。

例如,如果一个类具有仅调用一个整数的构造函数,则该Obj x = 2;句法在语法上是正确的,因为它仍具有与编写String相同的方式包含对象名称和参数。

user2864740:

所以String不是原始类型,而是必须以Obj x = new Obj();的形式创建一个类和类的对象;通常。但是,可以通过说String x =“ ...”来创建字符串。这是首选方法,而不是String x = new String(“ ...”);

没错,使用通常是一个错误new String(String)由于字符串是创建值的一种常见类型,因此Java与大多数语言一样,具有字符串文字语法构造。求值时,字符串文字表达式返回代表文本的字符串实例。

调用String y = new String("...")大致等效于String x = "..."; String y = new String(x);:将字符串文字求值为字符串,然后将其提供给String构造函数,该构造函数返回新的字符串实例(尽管使用相同的后备字符数组以避免复制数据)-如此浪费!这样new String(String),除了希望做一些特殊的操作之外,构造函数应该“永不”被调用。字符串实习

所以我想知道为什么允许使用字符串,并且如果构造函数仅需要单个参数,是否可以以类似的方式创建其他类的对象。

Java语法和大多数其他语言的一个特殊方面是创建具有最小麻烦的字符串对象必须使用其他值创建字符串很烦人new String(new char[] {'n','o',' ','t','h','a','n','k','s'})

Java并没有对自定义分析支持,因此它是不可能在Java本身扩展这种行为自定义类型。Java语言规范中涵盖了字符串文字的语法(以及执行期间的行为)

非常创作从字符串常量字符串对象主要是“JVM魔法/实施细则”(创建从文本字符串不能new String(String)构造与以往一样,原始的字符串实例是如何产生的?)。此外,对于每个字符串内部规则,不能保证从评估字符串文字返回的字符串对象实例是唯一的/“新的”。

例如,如果一个类的构造函数仅调用一个整数,则将说Obj x = 2;语法上正确,因为它仍然包含对象名称和参数,其编写方式与编写String相同。

这不是Java的工作方式。可以正常工作的语言不是Java 8。

在这个例子中整数文字是2:当作为表达评价它产生的值.. (int)2与使用字符串文字的情况不同,Java然后执行Integer自动装箱操作:2是一个an int,与相比String不是Object并且不能直接分配。这使得原件类似于Object x = new Integer(2);将int值隐式包装为Integer值的情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在没有'new'的情况下将新对象实例添加到std :: list

在没有“新”的情况下实例化课程

我可以在没有方法的情况下实例化对象吗?

为什么没有完整名称空间的情况下无法从字符串实例化新对象

Ruby - 如何在没有 .new 的情况下创建 MatchData 对象?

是否可以在没有 Groovy 的情况下使用 Jenkins

TCPClient是否可以在没有网卡的情况下使用?

是否可以在没有 sudo 的情况下使用 docker?

是否可以在没有 Anaconda 的情况下使用 scrapy?

是否可以在没有VPC的情况下启动RDS实例?

是否可以在没有云实例的情况下创建领域数据库?

在没有实例化对象的情况下访问非静态成员函数?

在C ++中,是否有一种(新的)方法可以在不实例化实例的情况下测试类在模板中是否具有虚拟析构函数?

是否可以在没有结构的情况下创建新的类型变量?

是否可以在没有画布的情况下从 ImageBitMap Web 对象获取像素?

是否可以在没有外部类的情况下序列化匿名类?

是否可以在没有模板消息的情况下使用NLog的结构化日志记录?

是否可以在没有Live Disk的情况下重新格式化Ubuntu硬盘?

该代码是否在不创建新类的情况下实例化或扩展了抽象类?

Kafka Streams-是否可以在没有本地Kafka Streams实例的情况下运行远程交互式查询

是否可以使用 terraform 在没有状态文件的情况下销毁 ec2 实例

引用对象而不在std :: vector中为其创建变量的情况下,是否会创建该对象的新实例?

PySpark是否可以在没有Spark的情况下工作?

AngularJs是否可以在没有引导的情况下工作

在没有实体框架和SQL Server的情况下,新的ASP.NET MVC身份框架是否可以工作?

有没有一种方法可以在不调用__init__的情况下实例化类?

是否有内置方法可以在没有 IOptions 的情况下进行配置模型绑定验证?

是否可以在没有URL名称的情况下拥有父状态?

是否可以在没有条件语句的情况下使用相同的父类创建随机对象?