Im пытается сделать оператор if, поэтому, когда r1 и num равны, он печатает r1, но он просто не печатает. он запрашивает номер продукта, и когда я ввожу его, ничего не печатает. Главное в конце. пожалуйста, покажите мне, что я делаю неправильно?Проблема с if stat
import java.io.*;
import java.util.*;
import java.lang.*;
import java.text.*;
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)
{
int temp = (this.getNum().compareTo(otherType.getNum()));
return temp;
}
//object1.compareTo(object2);
//(function).compareTo.function2;
public String toString()
{
String result = "" + partnum + " Price" + price + "Stock" + stock;
return result;
}
public static void main(String[] args)
{
ProductType r1 = new ProductType("1422", 1.00, 2);
ProductType r2 = new ProductType("8535", 2.00, 3);
Scanner in = new Scanner(System.in);
System.out.print("enter a Product number: ");
String num = in.nextLine();
if (r1.equals(num))
System.out.print(r1);
}
}
Вы внедрили «Comparable», но в этом случае он не будет использоваться. Вам нужно переопределить «equals» и «hashcode», чтобы делать то, что вы в настоящее время пытаетесь сделать. Вы можете найти несколько примеров для этого в Stackoverflow. И кстати. импортировать только необходимые классы. Я не думаю, что вам нужны все четыре подстановочных импорта. Например, вам никогда не нужно импортировать что-то из «java.lang». Эти классы автоматически импортируются. – Tom