我想创建一个包含并返回各种类型对象的对象。
最好的方法是什么?似乎有几种方式,所以我很想听听不同民族的想法。
感谢。
答案 0 :(得分:3)
如果您想从一次方法调用一次性返回所有对象,最好的办法是将所有对象封装到(可能是内部)类中并返回该类的实例。
class Container {
public static class Container {
Type1 obj1;
Type2 obj2;
...
}
private Type1 obj1;
private Type2 obj2;
...
public Container getAllObjects() {
Container container = new Container();
container.obj1 = this.obj1;
...
return container;
}
}
(从技术上讲,你也可以在Object[]
数组中返回多个对象,但是我不建议这样做是因为缺乏类型安全性和打开排序错误的可能性。)
如果你想从不同的方法调用一个接一个地返回对象,那么老好的getter就是你的朋友: - )
class Container {
private Type1 obj1;
private Type2 obj2;
...
public Type1 getObject1() {
return obj1;
}
public Type2 getObject2() {
return obj2;
}
...
}
答案 1 :(得分:2)
创建一个类似于此的类:
class ReturnValue {
Type1 value1;
Type2 value2;
}
如果您知道要一直返回的类型,则从您的方法返回一个实例。
如果您不知道,那么唯一的方法是返回包含您的值的Object[]
。
答案 2 :(得分:2)
我可以通过3种方式为您看到:
-1)使用传递的变量通过引用传递的事实。这样您就可以直接修改函数中的对象,而不必担心返回值
-2)你可以简单地创建一个对象数组:
Object[] returnTab = new Object[numberToStore];
(我发现这不是很漂亮)
-3)创建一个ReturnObjectContainer对象
公共类容器{ public ObjectA a; public ObjectB b;
Arraylist list = new list();
... //添加你需要存储的任何东西 }
答案 3 :(得分:1)
“回归”是什么意思?据我理解的条款,对象不返回任何东西,它们就是。他们可以拥有返回事物对象的吸气剂。你能告诉我你说的几种方式吗?
如果我理解你的话,你只需要一个具有多个私有对象(变量)的类(对象),这些私有对象可以设置并通过函数(成员)获得。
答案 4 :(得分:1)
这不是所有集合对象的定义(以及像ArrayList这样的List接口的大多数实现)吗?
集合对象是否包含其他对象并通过方法调用返回它们?