Implémentation Comparable, compareTo: «avoir le même effacement, mais ni l'un ni l'autre».

J'aimerais avoir une méthode compareTo qui prend un Réel (une classe pour travailler avec arbitrairement grand et précise des nombres réels [eh bien, tant qu'il est à moins de 2^31 de la longueur à l'instant]) et une méthode compareTo qui prend un Objet, mais Java n'est pas de me laisser et je ne suis pas assez expérimenté pour savoir pourquoi.

J'ai juste essayé de modifier la classe pour mettre en œuvre Comparable et j'ai ces messages d'erreur ci-dessous. Je ne comprends pas vraiment ce que la signification des messages d'erreur, mais je sais qu'il a quelque chose à voir avec la manière horrible, je suis en train de donner à la classe une certaine souplesse avec toutes les différentes signatures de méthode pour chaque méthode unique que je fais, et je peux le résoudre en supprimant le compareTo(Object autres) de la méthode, mais j'ai l'idéal serait de le garder. Donc, ce que je suis vraiment se poser est: Est-il un moyen de rendre ces messages d'erreur disparaissent sans enlever le compareTo(Object autres) méthode et exactement ce que ces erreurs veux dire?

Aussi, je sais qu'il y a déjà quelques intégrés dans des classes Java comme BigInteger et des choses comme ça pour ce que je suis en train d'utiliser cette classe, mais je fais ça pour le plaisir/satisfaction pour une utilisation avec Project Euler (https://projecteuler.net/).

Jake@Jake-PC /cygdrive/c/Users/Jake/Documents/Java/Mathematics
$ javac Real.java
Real.java:377: error: name clash: compareTo(Real) in Real overrides a method whose erasure is the same as another method, yet neither overrides the other
  public int compareTo(Real other)
             ^
  first method:  compareTo(Object) in Real
  second method: compareTo(T) in Comparable
  where T is a type-variable:
    T extends Object declared in interface Comparable
Real.java:440: error: name clash: compareTo(Object) in Real and compareTo(T) in Comparable have the same erasure, yet neither overrides the other
  public int compareTo(Object other)
             ^
  where T is a type-variable:
    T extends Object declared in interface Comparable
2 errors

Ce sont les compareTo méthodes:

  @Override
  public int compareTo(Real other)
  {
    //Logic.
  }
  public int compareTo(char givenValue) 
  { return compareTo(new Real(givenValue)); }
  public int compareTo(char[] givenValue) 
  { return compareTo(new Real(givenValue)); }
  public int compareTo(char[] givenValue, int offset, int count) 
  { return compareTo(new Real(givenValue, offset, count)); }
  public int compareTo(double givenValue) 
  { return compareTo(new Real(givenValue)); }
  public int compareTo(float givenValue) 
  { return compareTo(new Real(givenValue)); }
  public int compareTo(int givenValue) 
  { return compareTo(new Real(givenValue)); }
  public int compareTo(long givenValue) 
  { return compareTo(new Real(givenValue)); }
  public int compareTo(Object other) 
  { return compareTo(new Real(other.toString())); }

et les constructeurs juste au cas où vous en avez besoin:

  public Real(String givenValue)
  {
    //Logic.
  }
  public Real(char givenValue) 
  { this(String.valueOf(givenValue)); }
  public Real(char[] givenValue) 
  { this(String.valueOf(givenValue)); }
  public Real(char[] givenValue, int offset, int count) 
  { this(String.valueOf(givenValue, offset, count)); }
  public Real(double givenValue) 
  { this(String.valueOf(givenValue)); }
  public Real(float givenValue) 
  { this(String.valueOf(givenValue)); }
  public Real(int givenValue) 
  { this(String.valueOf(givenValue)); }
  public Real(long givenValue) 
  { this(String.valueOf(givenValue)); }
  public Real(Object other) 
  { this(other.toString()); }

source d'informationauteur Jxek