如何将Object从java类传递到另一个java类
我在java中创建了一个类的实例,如下所示:
ABC ab = new ABC();
我想在另一个类XYZ
访问此即时ab
。 如何在XYZ类中使用此对象?
如果没有关于您的问题的更具体信息,很难回答您的问题,但这肯定会奏效:
如果要在该类中的任何位置使用它,可以使用setter在其他类中初始化实例变量:
class someClass { void someMethod() { ABC ab = new ABC(); XYZ xyz = new XYZ(); xyz.setABC(ab); } } class XYZ { ABC ab; //... void setABC(ABC ab) { this.ab = ab; } //... void doSomething() { // do something with instance variable ab } }
有几种方法可以实现您想要实现的目标。 其中一些可能如下:
通过constructor
传递对象引用
在这里,当您创建实际类的对象时,您将显式传递引用类的引用。
public class ActualClass{ private ReferenceClass refClassObject; /** * Passing through a constructor */ public ReferenceClass(ReferenceClass refClassObject){ this.refClassObject = refClassObject; } } class ReferenceClass{ /** * Your implementation of the class */ }
使用getter / setter方法
在这种方法中,您将通过explict public setXX()
方法传递对象的引用。 这种方法更灵活,因为您可以根据需要更新引用对象(想想polymorphism
)。 举个例子:
public class ActualClass{ private ReferenceClass refClassObject; public ActualClass(){ } public void setReferenceClass(ReferenceClass refClassObject){ this.refClassObject = refClassObject; } public ReferenceClass getReferenceClass(){ return refClassObject; } } class ReferenceClass{ /** * Your implementation of the class */ }
使用构造函数和getter / setter的组合
为了增加灵活性,您可能希望使用引用初始化Actual类对象。 但是,如果您还希望保留在稍后阶段更改对象引用的选项,请选择我在上面指定的#1和#2的组合。
public class ActualClass{ private ReferenceClass refClassObject; public ActualClass(){ } public ActualClass(ReferenceClass refClassObject){ this.refClassObject = refClassObject; } public void setReferenceClass(ReferenceClass refClassObject){ this.refClassObject = refClassObject; } public ReferenceClass getReferenceClass(){ return refClassObject; } } class ReferenceClass{ /** * Your implementation of the class */ }
你应该选择哪一个? 那么这取决于你的实施和要求。
这个答案与Doug Ramsey完全相同, 这个链接我试图用相同的逻辑来解释。
public class A { public void m1() { System.out.println("inside m1 method"); ABC ab = new ABC(); // 2 object is made and reference is given to ab XYZ xyz = new XYZ(); 3 object is made and reference is given to xyz xyz.send(ab); // 4 THIS IS WHAT YOUR QUESTION MEANS } } class XYZ { ABC ab; //... void send(ABC ab) { // 5 this.ab = ab; System.out.println("inside send"); callme(); } //... void callme() { // 6 System.out.println("A is : "+ab.a); System.out.println("b is : "+ab.b); // do something with instance variable ab } } public class ABC { int a = 10; static int b= 20; public static void main(String[] args) // called first { A a = new A(); a.m1(); } }
您有两种方法可以将对象参数传递给另一个类。
-
将参数传递给方法
public void passMethod(ABC ab) { }
-
将参数传递给构造函数
public class XYZ { public XYZ(ABC ab) { } }
我知道这个问题很老,但是如果我是正确的,你想将一个Object转移到另一个要使用的类中。
为了做到这一点,你需要一些东西
XYZ类必须有一个构造函数来接受参数“Object”
class XYZ{ private Object ab public XYZ(Object ab){ this.ab = ab;//This is the constructor called when you create an XYZ object, and want to use the Object ab in XYZ }
package demo; class ABC{ void disp(xyz arg1){ System.out.println("runing disp method in pratics"); System.out.println("x value:"+arg1.x); arg1.test(); } } class xyz{ int x = 67; void test(){ System.out.println("runing test method in pratics"); } } class pratics { public static void main(String[] args) { ABC ab=new ABC(); ab.disp(new xyz()); } }
- 我该如何接听电话并挂断电话?
- android中的Ksoap2无法序列化
- 使用单个连接实例实现Eclipse MQTT Android Client
- 如何在Android中使用DefaultHttpClient创建持久性Cookie?
- Android Studio 1.2.2 ClassNotFoundException android.widget.viewstub
- Android StAX游标解析器 – 找不到方法javax.xml.stream.XMLInputFactory.newInstance
- 在Eclipse和Java中使用m4宏
- 在非UI线程上实例化视图
- 如何在Android中获取拨出电话号码?