如何在Java中对泛型类型设置约束? [英] How to set constraints on generic types in Java?

查看:365
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆