如何在参数中传递一个类并使用它的方法

时间:2012-08-03 14:08:54

标签: java class methods parameter-passing

正如标题所假设的那样,我在Java中如何做到这一点?我试图做的是这样的事情

首先是一个班级

public class MyFirstModel() {

    //standard constructor
    public MyFirstModel(){
            //some lines of codes
    }

    //A method
    public String getvalue() {

            //do something then
            return result;
    }
}

第二个模型(类)

public class MySecondModel() {

    //standard constructor
    public MySecondModel(){
            //some lines of codes
    }

    //A method
    public String getvalue() {

            //do something then
            return result;
    }
}

拥有这两个样本模型我想根据动作传递一个类。我们只说有两个按钮,第一个按钮用于模型,第二个按钮用于第二个模型。第三类要传递给:

 FinalClass fclass = new FinalClass(<class here>);  <-- how do i pass the class here

在这里,我如何通过课程?在FinalClass上,它的构造函数是什么?以及如何访问传递的类的方法?

我希望你们明白我的意思。请帮忙。

2 个答案:

答案 0 :(得分:5)

您不希望两个模型都实现接口吗?

MyModel.java:

public interface MyModel {
    public String getValue();
}

MyFirstModel.java:

public class MyFirstModel implements MyModel {
    public String getValue() {
        // stuff
    }
}

MySecondModel.java:

public class MySecondModel implements MyModel {
    public String getValue() {
        // stuff
    }
}

CallingClass.java:

public class CallingClass {
    private MyModel model = null;
    public CallingClass(MyModel model) {
        this.model = model;
    }
}

然后你可以根据需要构造MyModel并将其传递给CallingClass。

答案 1 :(得分:0)

您可以使用界面创建匿名对象:

public interface FinalClass {
   // Method definitions
}

public class MyFirstModel() implements FinalClass {
    //...
}

public class MySecondModel() implements FinalClass {
    //...
}

使用:

FinalClass fclass = new MyFirstModel();
// or
FinalClass fclass = new MySecondModel();