如何在Java中对泛型类型设置约束? [英] How to set constraints on generic types in Java?
本文介绍了如何在Java中对泛型类型设置约束?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
首先我只知道Java基础。现在我有以下场景:
First of all I'm only aware of Java basics. Now I have the following scenario:
我有一个通用类:
public class ListObject<T>
{
// fields
protected T _Value = null;
// ..
}
现在我想做
ListObject<MyClass> foo = new ListObject<MyClass>();
ListObject<MyClass> foo2 = new ListObject<MyClass>();
foo.compareTo(foo2);
问题是,当T是通用时,如何定义.compareTo
我想我有某种方式来实现一个约束的通用T来告诉T实现一个特定的接口(也许是Comparable,如果存在)。
The problem is, how can I define the .compareTo() Method while T is generic? I guess I have somehow to implement a constraint on the generic T to tell that T implements an specific interface (maybe Comparable, if that one exists).
任何人都可以提供一个小代码样本?
Can anyone provide me with a small code sample?
推荐答案
另请参阅这里的讨论: Java中的常规和排序
Read also the discussion here: Generics and sorting in Java
简短的答案,你最好得到的是:
Short answer, the best you can get is:
class ListObject<T extends Comparable<? super T>> {
...
}
但也有理由使用:
class ListObject<T extends Comparable> {
...
}
这篇关于如何在Java中对泛型类型设置约束?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文