gpt4 book ai didi

java - 为父类设置字段值的常用方法

转载 作者:行者123 更新时间:2023-12-01 20:03:06 25 4
gpt4 key购买 nike

我有一个响应类,其中包含n个字段,并且有多个类扩展了我的响应类。在每个方法中,我都需要设置响应类的字段以及子类字段,相反,我想创建一个通用方法来设置父类的所有字段并返回子类。

父类

class Response{
private String a;
public String getA() {
return a;
}

public void setA(String a) {
this.a = a;
}
}

子类 1

class Custom extends Response{

private String b;

public String getB() {
return b;
}

public void setB(String b) {
this.b = b;
}

}

子类2

class Custom1 extends Response{

private String c;

public String getC() {
return c;
}

public void setC(String c) {
this.c = c;
}

}

方法1

public Custom setFields(String aValue,String bValue){
Custom c = new Custom();
c.setA(aValue);
c.setB(bValue);
return c;
}

方法2

public Custom1 setFields(String aValue,String cValue){
Custom1 c1 = new Custom1();
c1.setA(aValue);
c1.setC(cValue);
return c1;
}

我想创建一个方法来设置属于 Response 类的字段的值,并分别返回相同的类对象 Custom 或 Custom1

例如:

Custom c = setResponseValue(aValue); OR 
Custom1 c1 = setResponseValue(aValue);

类似的方法

public Custom/Custom1 setResponseValue(String value){
/**

Sets the value

**/

return Custom/Custom1;
}

请帮忙,因为我需要一遍又一遍地做同样的事情。随着响应类中字段数量的增加,问题也会增加。

最佳答案

由于您想要返回具有父类设置的值的子类,因此您可以让子类构造函数具有输入值,并使用它来设置父类的值。

public class Response {
private String value;

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}
}

public class Child extends Response {

public Child(String value) {
setValue(value);
}
}

然后像这样使用它:

Child childResponse = new Child("hey");

更新:我不确定我是否完全理解您的意思,但是如果您不想在构造函数中设置值,并且不想为现有子对象设置值,也许您需要一个由此返回的克隆对象新的值(value)。确保您的类支持 Cloneable 接口(interface)并且:

public Child cloneAndSetValue(String value) throws CloneNotSupportedException {
Child c = (Child) this.clone();
c.setValue(value);
return c;
}

关于java - 为父类设置字段值的常用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47797494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com