Java泛型——我遗漏了什么?
我想知道你是否能帮我更好地掌握泛型。 我已尽量简化了这个问题 我试图将链表中存储的元素保存在一个名为saveIt的变量中。我知道LinkedList本身使用泛型,所以我希望我的变量采用列表中的任何数据类型。我相信LinkedList本身将该类型指定为E,但当我试图将变量声明为“E saveIt”时,我无法解析符号EJava泛型——我遗漏了什么?,java,generics,Java,Generics,我想知道你是否能帮我更好地掌握泛型。 我已尽量简化了这个问题 我试图将链表中存储的元素保存在一个名为saveIt的变量中。我知道LinkedList本身使用泛型,所以我希望我的变量采用列表中的任何数据类型。我相信LinkedList本身将该类型指定为E,但当我试图将变量声明为“E saveIt”时,我无法解析符号E public class Main { public static void main(String[] args) { // whatever goes h
public class Main {
public static void main(String[] args) {
// whatever goes here ...
}
void saveElement(LinkedList input) {
E saveIt = input.getFirst();
}
}
如果我创建LinkedList,那么我可以将变量声明为“Integer saveIt”,但这不是我想要做的
public class Main {
public static void main(String[] args) {
// whatever goes here ...
}
void saveElement(LinkedList<Integer> input) {
Integer saveIt = input.getFirst();
}
}
所以,基本的问题是,如果我想让我的方法处理列表中的任何数据类型,我该怎么做
<E> void saveElement(LinkedList<E> input) {
E saveIt = input.getFirst();
}
您需要告诉Java,E是您的方法的一个类型参数——它就像另一个传入的东西一样而且LinkedList包含E类型的元素。真的吗?!哇!这很容易,我在问之前搜索了好一阵子,也许这应该是显而易见的。谢谢。这相当于void saveElementLinkedList Input,这取决于该值的其他处理方式,以及其他代码是否需要提到E。我假设这不是OP的完整代码。
<E> void saveElement(LinkedList<E> input) {
E saveIt = input.getFirst();
}