Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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,我们的常用方法如下: public class CommomClass() { public String[] commonMethod(Object1 inputObject1) { String[] output; output[0] = (inputObject1.getValue1()); output[1] = (inputObject1.getValue2()); return output;

我们的常用方法如下:

public class CommomClass()
{
    public String[] commonMethod(Object1 inputObject1)
    {
        String[] output;

        output[0] = (inputObject1.getValue1());
        output[1] = (inputObject1.getValue2());

        return output;
    }
}

通过将方法参数更改为
Object2 inputObject2
,可以在其他类中使用相同的方法。如何在没有冗余代码的情况下实现这一点?

Object1
Object2
可以实现一个接口:

public interface HasValues {

    public String getValue1();
    public String getValue2();
}
public String[] commonMethod(HasValues hasValues) {

    String[] output = new String[2];

    output[0] = hasValues.getValue1();
    output[1] = hasValues.getValue2();

    return output;
}
您的通用方法可以重新定义,以获取该接口的实例:

public interface HasValues {

    public String getValue1();
    public String getValue2();
}
public String[] commonMethod(HasValues hasValues) {

    String[] output = new String[2];

    output[0] = hasValues.getValue1();
    output[1] = hasValues.getValue2();

    return output;
}

Object1
Object2
可以实现一个接口:

public interface HasValues {

    public String getValue1();
    public String getValue2();
}
public String[] commonMethod(HasValues hasValues) {

    String[] output = new String[2];

    output[0] = hasValues.getValue1();
    output[1] = hasValues.getValue2();

    return output;
}
您的通用方法可以重新定义,以获取该接口的实例:

public interface HasValues {

    public String getValue1();
    public String getValue2();
}
public String[] commonMethod(HasValues hasValues) {

    String[] output = new String[2];

    output[0] = hasValues.getValue1();
    output[1] = hasValues.getValue2();

    return output;
}

Object1
Object2
之间是否有任何关系,即一个公共父类(您可以使用
Object
,但任何要传递的对象都可以使用该类),或者一个是另一个的父类?请参见下面的答案。如果我误解了这个问题,请澄清。@twain249:他不能使用Object,因为Object没有方法
stringgetvalue1()
Object1
Object2
之间是否有任何关系,即一个公共父类(您可以使用
Object
,但这对于要传递的任何对象都是有效的),或者一个是另一个的父类?请参阅下面的答案。如果我误解了这个问题,请澄清。@twain249:他不能使用Object,因为Object没有方法
stringgetvalue1()。为什么它不是
字符串hasValue(int no)?为什么它不是
字符串hasValue(int no)