gpt4 book ai didi

Java - 可以在数组中添加一个 int 和一个 String 吗?

转载 作者:行者123 更新时间:2023-12-01 06:47:08 27 4
gpt4 key购买 nike

可以在数组中添加一个 int 和一个 String 吗?我说的是在同一个数组中。

最佳答案

不,Java 是一种强类型语言。因此,如果数组类型为 Stringint,则无法将 Stringint 添加到同一个数组中>.

但是,如果您的数组类型为Object,则可以添加一个String和一个Integer(整数文字将被自动装箱)同一个数组。不建议这样做,这可能表明您应该更多地考虑您的设计。您需要问自己的第一个问题是为什么您需要这样做。如果您确实有正当理由,那么最好从一种转换为另一种,而不是将数组类型化为 Object

有一个 catch-call 数组,您可以出于多种原因将任何对象放入一个坏主意:

  • 您没有强制执行对象之间的分离。这些对象实际上彼此相关吗?如果是这样,您可以使用接口(interface)进行输入,或者创建一个由每种类型扩展的抽象类。
  • 由于对象之间没有分隔,因此从数组中取出的任何内容都是对象。你怎么知道它是什么?您需要显式检查其类型。这是一种极其麻烦且难以维护的设计。
  • 您最终会失去类型安全性,并且无法从编译期间出现的类型不匹配错误中受益。这将隐藏代码中可能出现的错误,您可能忘记检查类型,或者将对象转换为错误的类型。这可能会导致各种噩梦般的错误。
  • 您的代码将充斥着显式检查和强制转换,并且无法(由您或其他任何人)维护。
  • 你的代码到处都泄漏了抽象。没有人能够看到这个数组并意识到它包含什么。任何使用您的代码的人都需要记住有关数组可以包含哪些类型的对象的大量详细信息。
  • 混淆从来都不是正当理由。代码应该清晰、易于阅读、易于维护且易于理解(对于您和任何将阅读您代码的其他人)。任何看起来困惑或“聪明”的代码都需要重写或广泛记录以解释其“聪明”的原因。就混淆源而言,这不是问题,因为无论如何您都会分发 .class 文件。您可以通过反编译器运行它来查看源代码。 在源代码级别您无法对代码进行令人满意的混淆;你只会让你或其他人难以维护。混淆可以在字节码级别完成,因此这并不真正适用于这种情况。

关于Java - 可以在数组中添加一个 int 和一个 String 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986688/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com