2015-05-12 2 views
-4
public class Product implements Comparable<Product> { 
    public Product(int id, int price) { 

    } 
} 

Я все еще изучаю java, и я не уверен, почему это не работает. кажется, что этого не должно быть достаточно кода, чтобы иметь ошибку. насколько я могу сказать, все так, как должно быть. Я объявил свой класс и попросил метод конструктора. потому что он попросил конструктора, я добавил конструктор, и он все еще хочет конструктор.Что не так с этим конструктором?

+0

Вам необходимо реализовать методы для _Comparable_ – morgano

+0

В следующий раз попробуйте включить точные сообщения об ошибках. Обратите внимание, что некоторые IDE по-прежнему будут показывать старые ошибки, если класс не может быть достаточно проанализирован во время первого прохода. –

ответ

3

похоже, что этого недостаточно, чтобы иметь код ошибки.

Поскольку вы пытаетесь реализовать Comparable interface, не имея достаточно код ошибки здесь. Вы должны реализовать метод compareTo, иначе вы получите ошибку компилятора. Голый минимум вы должны добавить это:

public int compareTo(Product other) 
{ 
    return 0; 
} 

Конечно, вы хотите сделать реальное сравнение и возвращать int менее 0, 0, или больше, чем 0, в зависимости от того, если это Product сравнивает меньше, равно или больше, чем otherProduct.

Не имеет смысла, что «он» запрашивает конструктор. Вам не нужно предоставлять какой-либо конструктор; Java неявно объявляет конструктор no-argument, do-nothing по умолчанию, если вы его не предоставите. Единственная ошибка, которую я вижу до сих пор, связана с предоставлением метода compareTo.

+0

, который, похоже, не помог, так как по какой-то причине кажется, что сопоставимый не может быть разрешен ... – namenotfound