![](/img/trans.png)
[英]How can I pass an object onto another class's method in my java code?
[英]How can pass an object of a class to another class's method?
如何在沒有接口或繼承的情況下將類的對象傳遞給另一個類的方法?
我需要將一個名為Project
的類的對象傳遞給類Developer
的方法。 Java能幫我做到嗎?
看看這個示例代碼,
public class Project {
public Project() {
Developer developer = new Developer();
developer.developerMethod(this);
}
}
public class Developer {
public void developerMethod(Project project) {
// do something
}
}
是的,您可以將引用傳遞給任何引用類型,無論它是類,接口,數組類型,枚舉,注釋還是abstract
, final
甚至strictfp
:
public class Project {
}
public class Developer {
public void myMethod(Project foo) {
// do something with foo
}
}
如果類Developer
包含一個方法,該方法接受類型為Project
的參數或Project
繼承的任何類型,包括Object
,那么您可以將Project
類型的對象傳遞給Developer
的方法
如果您可以選擇方法參數的類型,那很簡單:
class Project {
}
class Developer {
public void complete(Project p) {
}
}
class SoftwareHouse {
public void perform() {
Developer d = new Developer();
Project p = new Project();
d.complete(p);
}
}
如果參數的類型是固定的並且它不是Project
的接口或超類,則需要編寫適配器類:
interface Assignment {
}
class Developer2 {
public develop(Assignment a) {
}
}
class ProjectAssignment implements Assignment {
private Project p;
public ProjectAssignment(Project p) {
this.p = p;
}
}
class SoftwareHouse2 {
public void perform() {
Developer2 d2 = new Developer2();
Project p2 = new Project();
Assignment a = new ProjectAssignment(p);
d2.develop(a);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.