Предполагая, что у меня есть класс с двумя переменными экземпляра родового типа, как я могу заставить эти типы быть одинаковыми?
Я не нашел подобных вопросов в другом месте (не говоря уже о ответах), что может быть связано с тем, что я неправильно использую термины. Вот этот вопрос, но я не уверен, как применить его к моей ситуации.
Короче говоря, как я могу заставить эту последнюю строку кода не компилироваться?
class Foo<T> {
private T value;
}
class Bar {
private Foo var1;
private Foo var2;
public Bar(Foo var1, Foo var2) {
this.var1 = var1;
this.var2 = var2;
}
public static void main(String[] args) {
Foo<String> var1 = new Foo<>();
Foo<Integer> var2 = new Foo<>();
Bar b = new Bar(var1, var2); // this should not work
}
}