Java 比较功能问题
我想不出比较器的功能。这就是我必须要做的:编写一个compareTo函数,用于根据需要将产品按顺序排列 他们的零件号。也就是说,后面按字母顺序排列的零件号 顺序大于按字母顺序排列的较早的零件号。 这是我的代码:Java 比较功能问题,java,compareto,Java,Compareto,我想不出比较器的功能。这就是我必须要做的:编写一个compareTo函数,用于根据需要将产品按顺序排列 他们的零件号。也就是说,后面按字母顺序排列的零件号 顺序大于按字母顺序排列的较早的零件号。 这是我的代码: public class ProductType implements Comparable<ProductType> { private String partnum; private double price; private int stock;
public class ProductType implements Comparable<ProductType> {
private String partnum;
private double price;
private int stock;
public ProductType(String partnum, double price, int stock) {
this.partnum = partnum;
this.price = price;
this.stock = stock;
}
public ProductType() {
partnum = "";
price = 0;
stock = 0;
}
public void setNum(String partnum) {
this.partnum = partnum;
}
public void setPrice(double price) {
this.price = price;
}
public void setStock(int stock) {
this.stock = stock;
}
public String getNum() {
return partnum;
}
public double getPrice() {
return price;
}
public int getStock() {
return stock;
}
public int compareTo(ProductType otherType) throws NullPointerExeption {
if (otherType == null)
throw new NullPointerException();
return (this.getNum().compareTo.otherType.getNum());
}
public String toString() {
String result = "" + this.getNum();
return result;
}
}
public类ProductType实现了可比较的{
私有字符串partnum;
私人双价;
私人股票;
公共产品类型(字符串partnum、双倍价格、整数库存){
this.partnum=partnum;
这个价格=价格;
这个。股票=股票;
}
公共产品类型(){
partnum=“”;
价格=0;
股票=0;
}
公共void setNum(字符串partnum){
this.partnum=partnum;
}
公共定价(双倍价格){
这个价格=价格;
}
公共无效集合库存(内部库存){
这个。股票=股票;
}
公共字符串getNum(){
返回partnum;
}
公开双价{
退货价格;
}
public int getStock(){
退货;
}
public int compareTo(ProductType otherType)抛出NullPointerExection{
if(otherType==null)
抛出新的NullPointerException();
返回(this.getNum().compareTo.otherType.getNum());
}
公共字符串toString(){
String result=“”+this.getNum();
返回结果;
}
}
更改您的退货声明
return (this.getNum().compareTo.otherType.getNum());
到
因为compareTo()
是方法
调用compareTo()方法之前,请检查
null != this.getNum()
否则您将获得NPE。更改您的返回声明
return (this.getNum().compareTo.otherType.getNum());
到
因为compareTo()
是方法
调用compareTo()方法之前,请检查
null != this.getNum()
否则你会得到NPE。你只是看起来有一个点而不是一个括号。它应该是this.getNum().compareTo(otherType.getNum())
@pbabcdefp你能把它写成一个答案吗?@SezinKarli我做了一个评论,因为我不确定这是否是唯一的问题。不管怎么说,它现在似乎是一个答案。只是出于好奇:你为什么认为你可以像这样使用compareTo
?你认为这是一个字段,而不是一个方法吗?你似乎只是有一个点而不是一个括号。它应该是this.getNum().compareTo(otherType.getNum())
@pbabcdefp你能把它写成一个答案吗?@SezinKarli我做了一个评论,因为我不确定这是否是唯一的问题。不管怎么说,它现在似乎是一个答案。只是出于好奇:你为什么认为你可以像这样使用compareTo
?你认为这是一个字段,而不是一个方法吗?我仍然得到一个错误的方法NullPointerException@Dem在比较之前请检查(this.getNum()!=null)。我仍然得到一个错误NullPointerException@Dem比较前请检查(this.getNum()!=null)。