日期:2014-05-20  浏览次数:20829 次

如何使用泛型传入自身
有如下类

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
------解决方案--------------------
引用:
Hi,楼主这段代码报这个错误:Syntax error on token "Class", class expected

Class 应该改成 class

少侠好眼力
------解决方案--------------------
引用:
Quote: 引用:

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

Class 应该改成 class

少侠好眼力


+1,现在麻木了,不用工具都不知道代码错哪
------解决方案--------------------
top top top
------解决方案--------------------

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

Class 应该改成 class
少侠眼力确实好