微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > J2SE >

如何使用泛型传入自身

时间:2014-04-04 22:27  浏览:努力统计中...
有如下类 publicClassUserimplementsComparable { privateStringusername; publicintcompareTo(Objectobj) { Usero=(User)obj; returnusername.compareTo(o.getUsername()); } publicStringgetUsername() { returnusername; } } 其中Comparable接口可以
有如下类

public Class User implements Comparable
{
private String username;

public int compareTo(Object obj)
{
User o = (User)obj;
return username.compareTo(o.getUsername());
}

public String getUsername()
{
return username;
}
}


其中Comparable接口可以指定泛型

在不用泛型的情况下,compareTo的参数是Object,导致在方法内部,需要强制转换

请问,如何使用泛型,使得compareTo方法传入的参数是:User,如此,则在方法内部,无须强制转换

下面的用法貌似错了,求错在哪里?
public Class User implements Comparable<User>
{
private String username;

public int compareTo(User o)
{
return username.compareTo(o.getUsername());
}

public String getUsername()
{
return username;
}
}


毛错
public class User implements Comparable<User> {

    private String username;

    public User(String a){
        username = a;
    }
    @Override
    public int compareTo(User o) {
       return username.compareTo(o.getUsername());

    }

    public String getUsername() {
        return username;
    }
}

public class UserTest {
    public static void main(String[] args)
   {
       User a = new User("Zhang fei");
       User b = new User("Liu Bei");
       int c = a.compareTo(b);
       
       
       
   }
}


Hi,楼主这段代码报这个错误:Syntax error on token "Class", class expected

Class 应该改成 class


少侠好眼力


少侠好眼力

+1,现在麻木了,不用工具都不知道代码错哪

top top top


少侠眼力确实好
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------