我有以下类(class)。
public abstract class BaseRequest{
protected SomeEntity entity;
public BaseRequest() {
entity= new SomeEntity();
}
public void setName(String name){
entity.setName(name);
}
public void setAge(String age){
entity.setAge(age);
}
}
<小时/>
public class Request extends BaseRequest{
private String address;
public Request() {
super();
}
public void setAddress(String address){
this.address=address;
}
public String getAddress(){
return this.address;
}
}
我创建BaseRequest,因为它可以被许多子类使用。此外,客户端不应访问 BaseRequest.java 的 SomeEntity 属性
现在客户端可以使用Request
,如下所示。
Request re = new Request();
re.setName("xxx");
re.setAge("xxxxx");
re.setAddress("xxxxxx");
客户端会将此请求发送到服务方法,如下所示。
public void saveData(Request request){
//here i should get SomeEntity instance directly.
}
要直接获取 SomeEntity 填充的实例,我可以在 BaseRequest.java
中提供 getter 方法。但如果我提供一个 getter,那么即使客户端也可以通过实例化 Request 类来获取 SoemEntity 实例。我不想让客户端访问它。现在的问题是有没有最好的方法在 saveData() 中获取 someEntity 实例?
最佳答案
看来您需要为 BaseRequest
中的 someEntity 提供 protected getter
protected SomeEntity getSomeEntity() {
return someEntity;
}
使用此 getter,您不需要 BaseRequest
中 protected entity
字段,因此您可以将其设为私有(private)。
关于java - 使用java继承获取子类中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21546699/