我刚刚学习了 Java 泛型的概念,并尝试使用它进行一些练习。现在我正在尝试使用一个对象作为形式参数,但由于某种原因它不起作用。 这是我的代码:
public class Book {
String title;
public Book(String s) {
title = s;
}
public String getTitle() {
return title;
}
public static void main(String[] args) {
Book book1;
Pair<book1,int> pair1 = new Pair<>("somebook",22);
}
}
我的通用类:
public class Pair<A,B> {
A first;
B second;
public Pair(A a, B b) {
first = a;
second = b;
}
public A getFirst() {
return first;
}
public B getSecond() {
return second;
}
}
由于某种原因,此代码行出现错误:
Pair<book1,int> pair1 = new Pair<>("somebook",22);
任何见解都将受到赞赏。
最佳答案
对于泛型,您始终引用类型,而不是类的实例。我怀疑你想要这样的东西:
Pair<Book,Integer> pair1 = new Pair<>(book1, 22);
正如您在左侧看到的,我声明了一对 Book 和 Integer。右侧,Pair 由 Book 类型的对象 (book1) 和一个整数构造而成。
关于Java 泛型 : Can I Use an Object as a Formal Parameter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48352114/