在Java中将具有一个不同字段的两个类合并为一个
有两个类,除一个字段外,所有字段都相等 A类:字符串S1;字符串S2 B类:字符串S1;字符串S3 预期结果: C类:字符串S1;列表{S2,S3}在Java中将具有一个不同字段的两个类合并为一个,java,Java,有两个类,除一个字段外,所有字段都相等 A类:字符串S1;字符串S2 B类:字符串S1;字符串S3 预期结果: C类:字符串S1;列表{S2,S3} 有没有紧凑的解决方案可以合并到另一个类中,将不同的字段合并到一个集合中?字符串S1-主键。假设要在编译时创建类型为C的对象。你得介绍另一门课。如下所示: public class C { final String S1; final String List<String> S2AndS3; public
有没有紧凑的解决方案可以合并到另一个类中,将不同的字段合并到一个集合中?字符串S1-主键。假设要在编译时创建类型为
C
的对象。你得介绍另一门课。如下所示:
public class C {
final String S1;
final String List<String> S2AndS3;
public C(A a, B b){
if(!a.S1.equals(b.S1)){
throw new IllegalArgumentException("Not the same primary key");
}
S1 = a.S1;
S2AndS3 = Arrays.asList(a.S2, b.S3);
}
}
根据需要,将两个对象“合并”为一个。您想在编译时还是运行时实现它?您想对C
类做什么,您想作为一个类访问列表,还是只想在运行时合并S2
或S3
这两个类中的一个?或者类A和B的对象?Java对于类来说是相当严格的,也许你最好使用灵活的数据结构而不是类。就像这个例子中的列表地图一样
A a = ...;
B b = ...;
C c = new C(a,b);