运行代码时出现以下错误 我应该在编写此方法的类中创建Mycomp类的对象
Bound mismatch: The generic method sort(List<T>) of type Collections is not applicable for the arguments
(列表)。推断类型Product不是有界参数&gt;
的有效替代品 public List<Product> displaySortedShoppingCart(String userName) throws ShoppingCartNotFoundException
{
getConnection();
ResultSet rs;
boolean flag=false;
List<Product> l=new ArrayList<Product>();
String sql="select *from scart where username='"+userName+"'";
try {
rs=stmt.executeQuery(sql);
while(rs.next())
{
flag=true;
Product pr=new Product();
pr.setname(rs.getString(2));
l.add(pr);
//System.out.println(rs.getString(2));
}
if(flag==false)
throw new ShoppingCartNotFoundException();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//SortProduct sp=new SortProduct(new Product());
Collections.sort(l);
return l;
}
My Comparator实现类如下
import java.util.Comparator;
import com.bean.Product;
public class SortProduct implements Comparator {
@Override
public int compare(Object o1,Object o2)
{
Product p1=(Product)o1;
Product p2=(Product)o2;
int temp=p1.getName().compareTo(p2.getName());
return temp;
}
}
答案 0 :(得分:4)
第1步:将您的比较器键入Comparator<Product>
:
public class SortProduct implements Comparator<Product> {
@Override
public int compare(Product p1, Product p2) {
return p1.getName().compareTo(p2.getName());
}
}
注意如何更清晰地输入代码 - 无需进行强制转换。
步骤2:将比较器的实例传递给排序方法:
Collections.sort(l, new SortProduct());
答案 1 :(得分:1)
当您使用Collections.sort(l);
时,您的产品类必须实施Comparable