Java 泛型 : Can I Use an Object as a Formal Parameter?

标签 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);

任何见解都将受到赞赏。

最佳答案

对于泛型,您始终引用类型,而不是类的实例。我怀疑你想要这样的东西:

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/

相关文章:

java - 为什么我必须转换返回值?

java - 对象数组未正确初始化

java - JAXB 解码错误 : Expected elements are <{ } Root>

Spring框架中的Java配置

java - 使用 Java 流将 Java List 转换为另一个

java - 如何从源映射到 ModelMapper 中的同一对象

Swift 2 使用通用闭包参数声明函数

c# - 如何使用 Unity 将通用接口(interface)自动注册到该接口(interface)的非通用实现

java - 检查一个对象是否是给定类名列表的实例

java - 在ftp中使用java上传文件