簡體   English   中英

如何將類的對象傳遞給另一個類的方法?

[英]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
}
}

是的,您可以將引用傳遞給任何引用類型,無論它是類,接口,數組類型,枚舉,注釋還是abstractfinal甚至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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM