Java 如何重构这个简单的类字段

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

我有一个非常基本的OOP问题。我有两门课,如下所示

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<>();