它可能在数组中添加一个int和一个字符串?我在同一阵列中说过。Java - 可能在数组中添加一个int和一个String?
0
A
回答
6
不,Java是一种强类型语言。因此,如果阵列输入为String
或int
,则无法将String
和int
添加到同一阵列。
但是,如果您的数组键入为Object
,则可以将String
和Integer
(整数字面值将被自动装箱)添加到同一个数组。这不被推荐,可能是您应该更多地考虑您的设计的一个标志。你需要问自己的第一个问题是为什么你需要这样做。如果你确实有一个合理的理由,那么最好从一个转换到另一个,而不是将一个数组键入为Object
。
有一个追赶呼叫数组,您可以在任何物体推在一个坏主意的原因很多:
- 您正在执行的对象之间没有分离。对象是否实际上相互关联?如果是这样,则可以使用接口键入或创建每个类型扩展的抽象类。
- 既然你没有对象之间的分离,你拉出阵列的任何东西是
Object
。你怎么知道它是什么?你需要明确地检查它的类型。这是一个非常麻烦和不可维护的设计。 - 你基本上最终会失去类型安全性,并且不能从编译期间显示的类型不匹配错误中受益。这会隐藏可能忘记检查类型的代码中的可能错误,或者将对象投射到错误类型的位置。这可能会导致各种噩梦般的错误。
- 你的代码将被显式检查和强制转换,并且将无法维护(由你或其他人执行)。
- 你的代码无处不在抽象抽象。没有人可以查看数组并且了解数组包含的内容。任何使用你的代码的人都需要记住数量庞大的细节,以确定数组可以包含哪些类型的对象。
- 混淆从来不是一个有效的理由。代码应该清晰,易于阅读,易于维护且易于理解(对于您和任何其他将阅读您的代码的人员)。任何看起来模糊或者“聪明”的代码要么需要重写或者广泛记录以解释其“聪明”的原因。至于混淆来源,这是一个没有问题,因为无论如何你将分发
.class
文件。你可以通过反编译器运行它来查看源代码。没有任何东西可以在源代码上执行以令人满意地模糊您的代码;你只会让你或其他人难以维持。混淆可以在字节码级完成,所以这并不适用于这种情况。
3
0
在你的字符串数组的数组,你可以有“123”,然后当你需要它转换为int后。
0
您不能使用String等对象向数组添加基本类型(包括int)。但是,如果您声明一个Object []数组,则可以将Integer自动装箱到Integer中。
Object[] array = new Object[2];
array[0] = "Hello";
array[1] = 42;
虽然我不建议这样做,如果模拟这种字符串和int作为一个类的属性会工作。
0
是的,这绝对是可能的,只是有一个原始对象的数组。
例如:
Object[] arr = new Object[10];
arr[0] = 10; // boxed to Integer class
arr[1] = "foo"; // String class
然后可以使用instanceof
以确定存储在一个特定的索引对象的类型。
例如:
if (arr[0] instanceof Integer) ((Integer) arr[0]) += 10;
注意,这并不一定习惯一个很好的做法,但它确实有应用。
1
严格地说:第
否则:是最实用的目的:
Object[] array = { 42, "foo" };
请注意,该42
不是int
而是`Integer'。但由于自动装箱和拆箱,你不会注意到其中的差异。权衡当然是性能和垃圾收集器的开销。
此外,数组必须是Object[]
类型,而不是String[]
类型,也不是int[]
类型。
0
相关问题
- 1. 向数组中添加一个int
- 2. 是否有可能在同一个方法中使用(string,int)来得到一个return(string)和return(int)?
- 3. Android:将int和String值存储在一个多维数组中
- 4. 比较java中的一个String和一个数组元素
- 5. 向数组中添加一个字符串后跟一个int
- 6. 如何将String从一个数组添加到另一个
- 7. Char和Int在一个数组中
- 8. 如何将一个String数组拆分为单独的int和String数组?
- 9. Java中的Int和String数组
- 10. 如何在Java中添加一个元素和Int
- 11. 在Java中的一个数组中的Int和Double
- 12. 添加两个int数组
- 13. 如何在protobuf消息中添加一个int数组
- 14. 在数组中添加一个数组到一个数组中的多个根
- 15. 添加一个类到2d数组? Java
- 16. 基于一个int数组排序java中的多个数组
- 17. java:在2D数组中添加一个值到一列
- 18. 在java中乘以一个数组和一个二维数组
- 19. 在JNI中获取一个int数组
- 20. 如何在Xcode中添加一个int
- 21. 我怎么能MERG一个String数组和布尔数组
- 22. Java:一个int数组差异
- 23. 添加一个数组到一个Hashtable
- 24. 向Integer列表中添加一个int
- 25. 的PHP和Java String一个数据库
- 26. 将多个字节[]添加到Java中的一个数组中
- 27. 如何在JAVA中添加一个JSON数据到数组
- 28. 将int数组的值添加到另一个int数组的值C#
- 29. 将一个int附加到一个std :: string
- 30. 在总数中为每个int添加一个div
究竟是为了什么? – SLaks