Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何跨多个java类传递相同的对象?_Java_Android_Android Studio - Fatal编程技术网

如何跨多个java类传递相同的对象?

如何跨多个java类传递相同的对象?,java,android,android-studio,Java,Android,Android Studio,我有一个要跨多个类使用的对象类。基本上,我希望这个对象被用作一个我可以将信息转储到其中,然后解压这些信息的地方 比如说,我有5节课 Class1将返回一个box对象。-->Foo(对象)将存储该框 Class2将返回一个snake对象。-->Foo(对象)将存储蛇 Class3将返回一个圆形对象。-->Foo(对象)将存储圆 类4将返回一个食物对象。-->Foo(object)将存储食物 类5将返回一个盒子、蛇、圆圈和食物对象。-->解包Foo(object)以返回box、snake、circl

我有一个要跨多个类使用的对象类。基本上,我希望这个对象被用作一个我可以将信息转储到其中,然后解压这些信息的地方

比如说,我有5节课

Class1将返回一个box对象。-->Foo(对象)将存储该框

Class2将返回一个snake对象。-->Foo(对象)将存储蛇

Class3将返回一个圆形对象。-->Foo(对象)将存储圆

类4将返回一个食物对象。-->Foo(object)将存储食物

类5将返回一个盒子、蛇、圆圈和食物对象。-->解包Foo(object)以返回box、snake、circle和food对象

我该怎么做?如果可能的话,你能为这种场景提供一些示例代码吗?如果需要进一步澄清,请告诉我

谢谢

你可以做到: 1-创建一个类,您将创建对象作为其实例。 2-使该类从可序列化类扩展(允许您冻结,在冻结中,您可以创建对象) 3-使用意图在活动之间导航,并将对象添加为意图数据

希望有帮助 编辑 这就是活动的工作! 第二种方式

如果让对象从SharedReference扩展的类调用其数据,如


从类A创建一个对象,其构造函数使用SharedReferences类填充对象数据

您可以使用
dump
方法创建
接口
,并对所有要使用的类实现
接口
。如果您的
接口
被称为
转储程序
,您将需要在您打算使用它的所有类中实现它(如果可能的话)。如果不是,例如,class
EvilGuy
超出了您的控制范围,您可以简单地创建一个
EvilGuyWrapper
class
,使用
EvilGuy
的成员并实现
Dumper
类似收集器的东西,对吗

创建将累积对象的类:

public class EventCollector {
    private List<Object> events = new ArrayList<>();
    public void add(Object e) {
        events.add(e);
    }

}
public class Circle {
     private EventCollector ec;
     public setEventCollector(EventCollector ec) {
         this.ec = ec;
     }

     public void pack() {
         ec.add(this);
     }
}
对食物、盒子、蛇等也要这样做。。。对所有对象调用pack方法


所有对象最终都将在EventCollector中。

使用Java时,请记住,该语言非常倾向于在编译时获得可用信息

您要做的基本上是在运行时确定这一点,并且您只能通过返回对象并将其强制转换到您在该点期望的类来实现这一点

在您的情况下,您需要有一个包含所有要存储的不同类型的公共超类,一个由所有类型实现的接口,或者只使用对象。您可以将其存储在任何此类集合中,如ArrayList

然后当你取回对象时,你需要使用“instanceof”来找出你在看什么,然后把它转换成合适的类型


请注意,这是一个冗长且容易出错的过程,您可能需要重新考虑并学习泛型。

那么您想要一个包装对象的类吗?这已经是
对象
类的角色了。对于这类问题,代码也不是完全必要的。我只是需要一些指导。但假设您在类1中声明了Foo对象。如何在类2中声明相同的foo对象?事实是你不能。那么,我如何存储这样的信息呢。例如,类1{fooa=newfoo();a.setbox();}类2{fooa=newfoo()a.setSnake();}对象a有两个实例化。每个实例化不是都不同吗?我们要求您提供代码是有原因的。所以我们不应该为你写代码。请展示您迄今为止所做的尝试,然后就您遇到的具体问题提出具体问题。