Java Generics:我可以将对象用作形式参数吗?

时间:2018-01-20 02:45:55

标签: java generics

我刚学会了泛型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);

任何见解都将受到赞赏。

1 个答案:

答案 0 :(得分:4)

使用泛型,您总是指类型,而不是类的实例。我怀疑你想要这样的东西:

Pair<Book,Integer> pair1 = new Pair<>(book1, 22);

正如你在左侧看到的那样,我宣布了一对书和整数。在右侧,Pair由一个类型为Book(book1)和整数的对象构成。