Java 仅使用指定的变量创建对象
我有一个如下所示的java类。所以我想用较少的变量来创建这个类的对象Java 仅使用指定的变量创建对象,java,object,Java,Object,我有一个如下所示的java类。所以我想用较少的变量来创建这个类的对象 public class ABC{ private String firstName; private String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public Str
public class ABC{
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
}
所以我想制作一个只包含firstName的对象。我能做到这一点吗??或者有没有办法创建具有相同或不同数量变量的对象。您可以在这里使用继承,如:
public class Base {
private final String lastName;
public Base(String lastName) { this.lastName = lastName; }
public String getLastName() {
return lastName;
}
}
public class Child extends Base {
private String firstName;
public Child(String lastName, String firstName) {
super(lastName);
this.firstName = firstName;
}
public String getFirstName() {
return firstName;
}
}
现在,基类只有一个字段,子类添加另一个字段
根据OP的评论:这里直截了当的答案是——使用a。您可以将excel文件中的“字段名”用作地图中的键,并将excel字段值用作地图值。Java中不能有动态地具有“实”字段的类。类的结构是固定的——所有字段在编译时都是已知的。因此,除非您想创建一个知道所有可能字段的类,否则最好使用map。我认为这是不可能的。您可以扩展类ABC并重写getLastname()
阅读您的评论后,我认为您应该为dataobject创建一个包含所有必需字段的类,如果excel文件中有值,则设置该值,如果没有,则该字段的值为空。只需使用此值,因为您没有构造函数,没有什么比糟糕的抽象更能迫使您提供lastnameSounds的了。@Stultuske这不起作用,因为我试图存储excel数据,有时我会得到字段firstname和lastname,有时会超过2个字段。因此,我需要根据FieldsHanks创建对象。但这不起作用,因为我试图存储excel数据,有时会获取字段firstname和lastname,有时会超过2个字段。因此,我需要根据字段设置对象。我无法覆盖,因为我不知道哪些字段仅在导入excel文件期间提交。您可以创建一个类,该类包含诸如Object getFieldvalue(String fieldname)和setFieldvalue(String fieldname,Object value)之类的方法。然后将这些值存储在某种映射中。