首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个通用接口实现不能编译?

为什么这个通用接口实现不能编译?
EN

Stack Overflow用户
提问于 2011-03-08 16:56:37
回答 2查看 937关注 0票数 0

为什么这个通用接口实现不能编译?

代码语言:javascript
运行
复制
//The type Client<T> must implement the inherited abstract method IClient.compareTo(IClient)
class Client<T> implements IClient {

    //The method compareTo(IClient<T>) of type Client<T> must override or implement a supertype method
    //The Eclipse quick fix creates exactly the same supertype method which is defined in the interface.
    @Override
    public int compareTo( IClient<T> o ) {  
        return this.getClass().getName().compareTo( o.getClass().getName() );
    }
}

interface IClient<T> extends Comparable<IClient<T>> {

    @Override
    int compareTo( IClient<T> o );

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-08 16:59:57

哦,我发现有一个名称冲突:类型为Client的方法compareTo( IClient )与类型为IClient的compareTo(IClient)具有相同的擦除,但没有覆盖它。

IClient是一种原始类型。对泛型类型IClient的引用应参数化

class Client<T> implements IClient<T>会解决这个问题。

票数 2
EN

Stack Overflow用户

发布于 2011-03-08 17:01:10

代码语言:javascript
运行
复制
 class Client<T> implements IClient<T> {
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5230282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档