gpt4 book ai didi

java - 当类具有多个不同的字段时,如何对其进行泛化?

转载 作者:行者123 更新时间:2023-11-29 09:59:23 24 4
gpt4 key购买 nike

给定:

class PhysicsClass {
private PhysicsInstructor instructor;
private Set<PhysicsStudent> students;
}

class ChemistryClass {
private ChemistryInstructor instructor;
private Set<ChemistryStudent> students;
}

class MathemeticsClass {
private MathemeticsInstructor instructor;
private Set<MathemeticsStudent> students;
}

是否可以将所有这些类收集到一个通用类中,例如:

class ScienceClass<T> {
// What to write here?
// What to write here?
}

如果这不可能,那么我怎样才能防止这里的代码重复?

我想把它变成这样:

class ScienceClass<T extends Instructor, S extends Student> {
private T instructor;
private Set<S> students;
}

但这会让我做出类似的东西:

ScienceClass<PhysicsInstructor, ChemistryStudent> scienceClass;

这是不正确的。

最佳答案

从主题的界面开始

public interface Subject {}

public interface Physics extends Subject {}
public interface Chemistry extends Subject {}
public interface Mathematics extends Subject {}

下一步

public class Instructor<T extends Subject> {
...
}

然后,您可以只为您的“类(class)”创建一个类(class)

public class SchoolClass<T extends Subject> {
Instructor<T> prof;
ArrayList<Student<T>> students;
}

关于java - 当类具有多个不同的字段时,如何对其进行泛化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43239838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com