Java 如何重构这个简单的类字段
我有一个非常基本的OOP问题。我有两门课,如下所示Java 如何重构这个简单的类字段,java,oop,inheritance,Java,Oop,Inheritance,我有一个非常基本的OOP问题。我有两门课,如下所示 public class Class1 { private String field1; private String field2; private List<String> field3; // constructors } public class Class2 { private String field1; private String field2; priv
public class Class1 {
private String field1;
private String field2;
private List<String> field3;
// constructors
}
public class Class2 {
private String field1;
private String field2;
private List<Object1> field3;
// constructors
}
公共类1{
私有字符串字段1;
私有字符串字段2;
私有列表字段3;
//建设者
}
公共课2{
私有字符串字段1;
私有字符串字段2;
私有列表字段3;
//建设者
}
我必须创建class2的唯一原因是class1中的列表可以是字符串列表,也可以是Object2列表。有没有办法去掉类2,让field3作为字符串列表和Object2列表
我知道我可以做像这样的事情
public class Class1 {
private String field1;
private String field2;
private List<String> field3;
private List<Object1> field4;
// constructors which are initializing null to either field 3 or field 4
}
公共类1{
私有字符串字段1;
私有字符串字段2;
私有列表字段3;
私有列表字段4;
//初始化字段3或字段4为null的构造函数
}
但是上面的内容看起来并不干净,因为用其中一个列表实例化的对象中不应该有其他列表的任何引用 使用:
公共类1{
私有字符串字段1;
私有字符串字段2;
私有列表字段3;
//建设者
}
Class1 stringObj=新的Class1();
使用:
公共类1{
私有字符串字段1;
私有字符串字段2;
私有列表字段3;
//建设者
}
Class1 stringObj=新的Class1();
泛型…….类别1
和私有列表字段3代码>应该这样做。arghhh为什么我不能想到这个!!泛型…….类别1
和私有列表字段3代码>应该这样做。arghhh为什么我不能想到这个!!我简直不敢相信为什么我没有想到这一点!!我简直不敢相信为什么我没有想到这一点!!
public class Class1<TField3> {
private String field1;
private String field2;
private List<TField3> field3;
// constructors
}
Class1<String> stringObj = new Class1<>();