我有一个分配来创建一个包含两个字段(名称,大写)的Country类,这两个字段首先必须根据名称与另一个Country进行比较。之后我没有改变任何东西,我必须做另一个只关心比较资本的测试。如何在同一个班级做两种不同的比较方法? 这是我到目前为止所做的:
国家/地区类:
public class Country implements Comparable {
private String name;
private String capital;
public Country(String name, String capital) {
this.name = name;
this.capital = capital;
}
public String getName() {
return name;
}
public String getCapital() {
return capital;
}
@Override
public String toString() {
return "Country{" +
"name='" + name + '\'' +
", capital='" + capital + '\'' +
'}';
}
public static final Comparator<Country> nameComparator = (country, secondCountry) -> country.getName().compareTo(secondCountry.getName());
public static final Comparator<Country> capitalComparator = (country, secondCountry) -> country.getCapital().compareTo(secondCountry.getCapital());
@Override
public int compareTo(Object o) {
return 0;
}
}
检查国家/地区是否正确排序的方法:
public boolean isSorted(List<Country> countryList) {
boolean sorted = Ordering.natural().isOrdered(countryList);
return sorted;
}
我的测试:
@org.junit.Test
public void testIfTheListIsSorted () {
CountryDAO countryDAO = new CountryDAO();
List<Country> countryList = countryDAO.getCountryList();
Collections.sort(countryList, Country.nameComparator);
assertTrue(countryDAO.isSorted(countryList));
}
我需要改变什么来比较我的选择,无论是名字还是资本?两种方式都是可测试的。提前谢谢..