Ceci est pour un devoir. Cependant, j'ai codé la partie écrasante de ma mission. Il y a juste ce barrage routier. Je suis également nouveau à Java, donc ma terminologie peut être un peu éteinte.Comment résoudre: compareTo >> ne peut pas trouver le symbole
J'ai 5 types: fourni par l'enseignant:
- NameInterface, qui est le fichier d'interface pour le nom
- Nom, qui utilise 2 chaînes privées, d'abord & dernière, pour la première et nom de famille
- StudentInterface, qui est le fichier d'interface pour étudiants
- StudentTest, qui est la méthode principale utilisée pour tester
Principalement fourni par l'enseignant, je dois juste corriger compareTo(). Tout le reste, comme les constructeurs, les champs, etc se fait:
- étudiants, qui utilise fullName (qui est un NameInterface) & ville Chaîne
classe le nom a une dérogation compareTo() qui utilise le intégré Java en compareTo pour comparer cette première & autre premier
public int compareTo(Object other)
{
int result = last.compareTo(((Name)other).last);
if (result == 0)
{
// last names are equal; check first
result = first.compareTo(((Name)other).first);
} // end if
return result;
} // end compareTo
classe Student a un compareTo() qui utilise le nom de classe compareTo pour comparer ce nom & autre nom un s ainsi que cette ville & autre ville
public int compareTo(Object other)
{
Student localStudent = (Student) other;
int result = (fullName.getName()).compareTo((localStudent.getName()).getName());
if (result == 0)
{
// last names are equal; check first
result = city.compareTo(localStudent.getCity());
} // end if
return result;
} // end compareTo
J'essaie d'appeler compareTo de classe des étudiants en StudentTest, mais il dit ne peut pas trouver le symbole.
StudentInterface si = new Student();
si.setCity("Kingston");
NameInterface ni = new Name("Andrew","Pletch");
si.setName(ni);
StudentInterface si2 = new Student();
si2.setCity("Kingston");
NameInterface ni2 = new Name("Aram","Agajanian");
si2.setName(ni2);
System.out.println(" compare as (should be +ve) " + si.compareTo(si2));
erreur est:
StudentTest.java:27: error: cannot find symbol
System.out.println(" compare as (should be +ve) " + si.compareTo(si2));
^
symbol: method compareTo(StudentInterface)
location: variable si of type StudentInterface
1 error
Ma conclusion est que "autre objet" ne se conforme pas "StudentInterface". Comment puis-je résoudre ça? Merci tout le monde.
Pourriez-vous coller le code complet pour inclure des informations importantes (par exemple, la définition complète de StudentInterface)? –
Avez-vous déclaré 'int compareTo (Object other);' dans 'StudentInterface'? –
Cela signifie que l'interface 'StudentInterface' ne spécifie pas de méthode' compareTo'. Il semble que vous en définissiez seulement un dans la classe 'Student'. –