我有一个对象,我知道它要么是一个集合,要么是一个扩展对象[]或任何基元数组的对象,我想得到它的字符串表示形式:[e1,e2,…,en]
String.valueOf(对象);
不适用于具有不同toString
方法的数组和外部集合。object.getClass(). isArray()?rrays.toString((Object[])对象): String.valueOf(对象);
在传递原始数组时抛出ClassCastException。"["Stream.of(对象). map(v-
我正在寻找一个快速的解决方案,最好是不依赖库的解决方案。它不应该涉及用于类型检查的巨大if-etc/switch块。
您可以这样创建一个类,如PrintTools:
public class PrintTools {
public static String print(Collection c){
return c.toString();
}
public static String print(Object... o){
return Arrays.deepToString(o);
}
}
因此,您将根据参数类型使用适当的方法。
因此,您的测试可能是以下内容:
public class TestPrintTools {
public static void main(String[] args) {
A[] a1 = {new A(1), new A(2)};
int[] a2 = {3, 4};
List<A> a3 = List.of(new A(5), new A(6));
System.out.println(PrintTools.print(a1));
System.out.println(PrintTools.print(a2));
System.out.println(PrintTools.print(a3));
}
}
class A{
int a;
public A(int a) {
this.a = a;
}
@Override
public String toString() {
return "A{" +
"a=" + a +
'}';
}
}
输出:
[A{a=1}, A{a=2}]
[[3, 4]]
[A{a=5}, A{a=6}]
一个对象,我知道它要么是一个集合,要么是扩展对象[]的对象,要么是任何基元数组
整个问题陈述听起来很难闻。即使您没有开发这段代码,但继承了您的前任,我强烈建议您用更可行的东西来替换它。
但您可以使用反射处理任意类型的数组:
int[] nums = {1, 2, 3};
Object arr = nums;
if (!(arr instanceof Collection<?>)) {
int len = Array.getLength(arr);
for (int i = 0; i < len; i++) {
System.out.println(Array.get(arr, i));
}
}
输出:
1
2
3
Set似乎是一种创建具有保证唯一元素的数组的好方法,但它不提供任何获取属性的好方法,除了generator[Set].values,它以的尴尬方式调用。 如果您可以在集合上调用和类似的函数,那么这是可以的。但你也不能那样做。 我尝试过,但似乎只转换了类数组(NodeList和TypedArrays?)对象设置为数组。再试一次:对Sets不起作用,set.prototype没有类似的静态方法。 那么
问题内容: 如果我运行,Laravel会执行以下烦人的事情,即向集合中的每个模型添加键,如下所示: 我如何摆脱“ 4”和“ 7”,所以它是我的对象的数组? 我运行的代码是: 问题答案: 问题在于该方法不会为基础集合数组重新设置密钥。因此,Collection仍表示一个数组,只是您的数组看起来像这样: 尽管这在PHP中是一个非常有效的数组,但在JSON中却不是一个合适的数组。由于无法将其表示为JSO
问题内容: 我使用以下代码将Object数组转换为String数组: 但是我想知道是否还有另一种方法可以做到,例如: 但这会导致运行时错误: 正确的方法是什么? 问题答案: 另一种替代方法:
我目前有一个自定义对象数组 [基因报告员] 定义如下: 当打印到console时,它如下所示: [MyMovieGuide.GenrePosters(海报:/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg),MyMovieGuide.GenrePosters(海报:/jjbgi2r5crt36xf6inuehzsceb.jpg),MyMovieGuide.GenrePosters(
问题内容: response->docs); ?> 输出以下内容: 如何将该对象转换为数组?我想输出以下内容: 这可能吗? 问题答案: 您应该查看get_object_vars,因为您的属性被声明为私有,所以您应该在类内部调用此方法并返回其结果。 注意,对于像字符串这样的原始数据类型,它会很好用,但是我不知道它在嵌套对象中的行为。 在您的情况下,您必须执行类似操作;
问题内容: 48 30 我有一个X类型的对象,我想在将其发送到S3之前将其转换为字节数组。有人可以告诉我该怎么做吗?我感谢您的帮助。 问题答案: 你要执行的操作称为“ 序列化 ”。有几种方法可以做到,但是如果你不需要花哨的东西,我认为使用标准Java对象序列化就可以了。 也许你可以使用类似的东西? 可以对此进行一些改进。至少事实是每个字节数组只能读取/写入一个对象,这可能是你想要的,也可能不是。