Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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 - Fatal编程技术网

Java 如何将一个类的对象传递给另一个类';什么方法?

Java 如何将一个类的对象传递给另一个类';什么方法?,java,Java,在没有接口或继承的情况下,如何将一个类的对象传递给另一个类的方法 我需要将名为Project的类的对象传递给类Developer的方法。Java能帮我做到这一点吗?是的,您可以传递对任何引用类型的引用,不管它是类、接口、数组类型、枚举、注释还是抽象的、最终的,甚至是strictfp: public class Project { } public class Developer { public void myMethod(Project foo) { // do somethin

在没有接口或继承的情况下,如何将一个类的对象传递给另一个类的方法


我需要将名为
Project
的类的对象传递给类
Developer
的方法。Java能帮我做到这一点吗?

是的,您可以传递对任何引用类型的引用,不管它是类、接口、数组类型、枚举、注释还是抽象的、最终的,甚至是strictfp:

public class Project {
}

public class Developer {
  public void myMethod(Project foo) {
    // do something with foo
  }
}

如果类
Developer
包含一个方法,该方法采用
Project
类型的参数或
Project
继承的任何类型,包括
Object
,那么您可以将
Project
类型的对象传递给
Developer

中的方法查看此示例代码

public class Project {

  public Project() {

   Developer developer = new Developer();
   developer.developerMethod(this);
  }
}

public class Developer {

public void developerMethod(Project project) {
 // do something
}
}

如果可以选择方法参数的类型,则非常简单:

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);
    }
}

谢谢大家的回答。我刚刚用java度过了7天…就在几分钟前用stackoverflow.com。。。约阿希姆斯的回答就是我现在所需要的。。随着我的深入,我希望这些剩余的答案对我来说意义重大。。谢谢大家