Comment remplacer toSsortingng () correctement en Java?

Cela semble un peu stupide, mais j’ai besoin d’aide sur ma méthode toSsortingng () et c’est très irritant. J’ai essayé de regarder en ligne parce que le toSsortingng est celui où il est foutu et “ne pas trouver le constructeur Kid # 2” même s’il est là et je ferais même autre chose et ça ne marche pas. Ok c’était beaucoup alors voici mon code:

import java.util.*; class Kid { Ssortingng name; double height; GregorianCalendar bDay; public Kid () { this.name = "HEAD"; this.height = 1; this.bDay = new GregorianCalendar(1111,1,1); } public Kid (Ssortingng n, double h, Ssortingng date) { // method that toSsortingng() can't find somehow SsortingngTokenizer st = new SsortingngTokenizer(date, "/", true); n = this.name; h = this.height; } public Ssortingng toSsortingng() { return Kid(this.name, this.height, this.bDay); } } //end class 

Ok Donc mon toSsortingng ci-dessus (je sais, mon troisième paramètre est désactivé, devrait être un Ssortingng) est désactivé. Si je codé en dur une valeur pour la troisième chose, il va mal tourner et dit qu’il ne peut pas le trouver (ci-dessus). Alors, comment puis-je obtenir la date et la casser?

La classe appelant ceci est ci-dessous

 class Driver { public static void main (Ssortingng[] args) { Kid kid1 = new Kid("Lexie", 2.6, "11/5/2009"); System.out.println(kid1.toSsortingng()); } //end main method } //end class 

J’ai essayé de rechercher plusieurs constructeurs et cela n’a pas vraiment aidé. J’ai essayé de faire des recherches sur les méthodes toSsortingng () et j’ai essayé d’utiliser la logique des méthodes toSsortingng () que j’avais créées précédemment, mais c’est une nouveauté, donc cela n’a jamais fonctionné.

Aidez-moi?

Le toSsortingng est censé retourner une Ssortingng .

 public Ssortingng toSsortingng() { return "Name: '" + this.name + "', Height: '" + this.height + "', Birthday: '" + this.bDay + "'"; } 

Je vous suggère d’utiliser les fonctionnalités de votre IDE pour générer la méthode toSsortingng . Ne le codez pas manuellement.

Par exemple, Eclipse peut le faire si vous cliquez simplement avec le bouton droit de la souris sur le code source et sélectionnez Source > Generate toSsortingng

Méthode Java toSsortingng ()

Si vous voulez représenter un object en tant que chaîne, la méthode toSsortingng () existe.

La méthode toSsortingng () renvoie la représentation sous forme de chaîne de l’object.

Si vous imprimez un object, le compilateur Java appelle en interne la méthode toSsortingng () sur l’object. Donc, le remplacement de la méthode toSsortingng (), renvoie la sortie souhaitée, cela peut être l’état d’un object, etc. dépend de votre implémentation.

Avantage de la méthode Java toSsortingng ()

En remplaçant la méthode toSsortingng () de la classe Object, nous pouvons renvoyer des valeurs de l’object, nous n’avons donc pas besoin d’écrire beaucoup de code.

Sortie sans la méthode toSsortingng ()

 class Student{ int id; Ssortingng name; Ssortingng address; Student(int id, Ssortingng name, Ssortingng address){ this.id=id; this.name=name; this.address=address; } public static void main(Ssortingng args[]){ Student s1=new Student(100,”Joe”,”success”); Student s2=new Student(50,”Jeff”,”fail”); System.out.println(s1);//comstackr writes here s1.toSsortingng() System.out.println(s2);//comstackr writes here s2.toSsortingng() } } Output:Student@2kaa9dc Student@4bbc148 

Vous pouvez voir dans l’exemple ci-dessus # 1. l’impression s1 et s2 imprime les valeurs Hashcode des objects mais je souhaite imprimer les valeurs de ces objects. Comme le compilateur Java appelle en interne la méthode toSsortingng (), le remplacement de cette méthode renverra les valeurs spécifiées. Comprenons cela avec l’exemple ci-dessous:

 Example#2 Output with overriding toSsortingng() method class Student{ int id; Ssortingng name; Ssortingng address; Student(int id, Ssortingng name, Ssortingng address){ this.id=id; this.name=name; this.address=address; } //overriding the toSsortingng() method public Ssortingng toSsortingng(){ return id+" "+name+" "+address; } public static void main(Ssortingng args[]){ Student s1=new Student(100,”Joe”,”success”); Student s2=new Student(50,”Jeff”,”fail”); System.out.println(s1);//comstackr writes here s1.toSsortingng() System.out.println(s2);//comstackr writes here s2.toSsortingng() } } Output:100 Joe success 50 Jeff fail 

Notez que toSsortingng () est principalement lié au concept de polymorphism en Java. Dans, Eclipse, essayez de cliquer sur toSsortingng () et cliquez dessus avec le bouton droit. Cliquez ensuite sur Open Declaration et voyez d’où vient la Superclass toSsortingng ().

Vous pouvez créer un nouvel object dans le toSsortingng (). utilisation

 return "Name = " + this.name +" height= " + this.height; 

au lieu de

 return Kid(this.name, this.height, this.bDay); 

Vous pouvez changer la chaîne de retour si nécessaire. Il existe d’autres moyens de stocker la date à la place du calandre.

Vous ne pouvez pas appeler un constructeur comme s’il s’agissait d’une méthode normale, vous ne pouvez l’appeler qu’avec new pour créer un nouvel object:

 Kid newKid = new Kid(this.name, this.height, this.bDay); 

Mais construire un nouvel object à partir de votre méthode toSsortingng () n’est pas ce que vous voulez faire.

Le code suivant est un exemple. Question basée sur la même chose, au lieu d’utiliser la conversion basée sur IDE, y a-t-il un moyen plus rapide d’implémenter pour qu’à l’avenir les changements se produisent, nous n’avons pas besoin de modifier les valeurs encore et encore?

 @Override public Ssortingng toSsortingng() { return "ContractDTO{" + "contractId='" + contractId + '\'' + ", contractTemplateId='" + contractTemplateId + '\'' + '}'; } 

Eh bien, en fait, vous devrez retourner quelque chose comme ça parce que toSsortingng doit retourner une chaîne

 public Ssortingng toSsortingng() { return "Name :" + this.name + "whatever :" + this.whatever + ""; } 

et vous faites réellement quelque chose de mal dans le constructeur, vous définissez la variable définie par l’utilisateur sur le nom, alors que vous devez faire le contraire. Ce que vous ne devriez pas faire

 n = this.name 

Ce que tu devrais faire

 this.name = n 

Espère que cela aide merci

nous pouvons même écrire comme ça en créant un nouvel object Ssortingng dans la classe et en lui assignant ce que nous voulons dans le constructeur et retourner cela dans la méthode toSsortingng qui est surchargée

 public class Student{ int id; Ssortingng name; Ssortingng address; Ssortingng details; Student(int id, Ssortingng name, Ssortingng address){ this.id=id; this.name=name; this.address=address; this.details=id+" "+name+" "+address; } //overriding the toSsortingng() method public Ssortingng toSsortingng(){ return details; } public static void main(Ssortingng args[]){ Student s1=new Student(100,"Joe","success"); Student s2=new Student(50,"Jeff","fail"); System.out.println(s1);//comstackr writes here s1.toSsortingng() System.out.println(s2);//comstackr writes here s2.toSsortingng() } }