différence entre (String)de la valeur et de la valeur.toString() , new Long(valeur) et la (Longue)valeur
Dans certains endroits, j'ai vu (String)value
.Dans certains endroits, value.toString()
Quelle est la différence entre ces deux.Dans le scénario lequel j'ai besoin d'utiliser.
Et quelle est la différence entre new Long(value)
et (Long)value
?
voir ma réponse mis à jour.
OriginalL'auteur PSR | 2013-04-09
Vous devez vous connecter pour publier un commentaire.
(String) valeur de moulages d'objets de valeur à la chaîne, qui s'étend de la Chaîne. de la valeur.toString() appelle la méthode sur la valeur de l'objet, qui est inherritated de la classe de l'Objet, et cette méthode retourne la Chaîne, qui affichent des informations de cet objet. Si vous avez quelques yourClass valeur, elle est recommandée pour overrite toString()
nouveau Long(valeur) crée un nouvel objet de type Long et fixe la valeur de Long à votre valeur de la variable. (Long)pour obtenir une valeur de la valeur de l'objet et de le jeter à un objet de type Long. dans Long(valeur) valeur doit être en nombre ou une chaîne.
qu'est-ce que valeur ?
ah c'est sur, j'avais oublié.. fixe la valeur de Long à la valeur de votre variable 😀
Ensuite modifier votre réponse ami
"en Long(valeur) valeur doit être un nombre." Il peut être de Chaîne également. Lire l'API.
OriginalL'auteur Miloš Lukačka
Dans
crée de nouvelles classe wrapper Objet
et
type de fonte de la valeur à Long( wrapper) si possible.
de même
de type cast valeur de Chaîne
mais toString() est une méthode qui est une classe d'objet, de méthode et que l'On doit le remplacer selon le besoin, par exemple.
OriginalL'auteur Nirbhay Mishra
Dans aucune langue (que je connais), un casting de modifier le type d'un objet.
Vous utilisez le casting
(String)
lorsque vous avez, disons, une référence que le compilateur est un Objet, mais vous savez c'est vraiment une Chaîne de caractères, et que vous souhaitez que le compilateur sait que. Si vous avez un Entier et d'essayer de jeter à la Chaîne, vous obtiendrez une ClassCastException lorsque vous exécutez le code.Donc si vous avez un Entier et veulent sa représentation sous forme de Chaîne que vous souhaitez utiliser toString.
(À noter qu'un plâtre changer le type d'un "scalaire". C'est à dire, que vous pouvez lancer à partir de int en char avec
(char)
et le compilateur va effectuer la conversion. Le "casting" dans ce cas est un concept tout à fait différent. Il est malheureux que la tradition a conduit à la même syntaxe pour être utilisé pour les deux.)OriginalL'auteur Hot Licks
Tout d'abord , la valeur est une chaîne de caractères elle-même?
l' (String)de la valeur est une fonte et ne travail de valeur est une chaîne de caractères.
Toutefois, l'appel de la valeur.toString() est juste un appel de méthode. toString() est une méthode
de chaque objet dans java, de sorte que ne manquera pas, même si la valeur est, disons, un entier.
Maintenant , Appelant le (Long)de la valeur est en train de jeter de la valeur à Long, et ne fonctionne
si la valeur est de type Long.
et, appelant de Long(de la valeur) est en train d'appeler le constructeur de la classe de Long,
en passant la valeur de paramètre.
OriginalL'auteur omer schleifer
Lorsque vous lancez un objet Chaîne de caractères, vous êtes sûr que c'est une chaîne et au moment de l'exécution si elle arrive à être une instance d'un autre objet, puis vous obtenez une classe cast exception.
D'autre part, Lorsque vous appelez une méthode toString() sur un objet qu'elle n'a pas besoin d'être une chaîne de caractères comme toutes les classes héritent de cette méthode de la classe object.
OriginalL'auteur Prashant K
quand vous faites "(Chaîne de caractères)de la valeur", c'est un casting, en d'autres termes, vous est explicitement de "dire" pour le compilateur que la valeur est une chaîne, mais si non, va lancer une exception d'exécution.
quand vous faites "de la valeur.ToString()" sera de créer une nouvelle chaîne avec le cette valeur
il en va de même pour de Longues
oui, la chaîne sont immuables
Oui. Les chaînes sont immuables. Avez-vous vérifié que Chaîne de caractères.méthode toString() est en train de faire. Est-il de la création de la NOUVELLE chaîne.
il devrait y avoir une case à revenir lui-même, sans la création d'une nouvelle chaîne
OriginalL'auteur Erick de Oliveira Santos
Ceux-ci sont tous très différents. Le premier est
Type Casting
. Disons que vous recevez un Objet sur votre méthode, et vous savez que c'est une Chaîne de caractères, alors vous voulez qu'il soit appelé de ce type. donc, vous n'avez queLa toString méthode est héritée de l' Objet classe, cela revient à vous d'une
String
représentation de toutObject
.Donc, la différence est, lorsque vous procédez à la coulée, votre objet doit déjà être un
String
, il n'y a pas de conversion. La différence est que vous pouvez utiliser un type spécifique de votre variable, mais lorsque vous appelez toString qui n'est pas nécessaire.Invoquant
toString
peut vous donner un autre objet que celui d'origine, à moins que votre classe est déjà unString
, dans ce cas, la même référence est renvoyée.toString()
n'est pas nécessairement la création d'un nouvel objet, si elle n'est pas très dérangeant. AprèsString s = ...; String t = s.toString();
s et t doit être le même objet.Oui, je vois votre point de vue. Vous envisagez de la Chaîne de la piscine. Ce que je voulais dire par là c'est que le retour de la méthode n'est pas exactement le même objet, comme il est dans typecasting. Je vais essayer et modifier la réponse pour le rendre plus clair
Les chaînes sont immuables, donc il n'y a aucune raison pour que le
toString
méthode pour copier un. Je suis sûr que la Chaîne de mise en œuvre estpublic String toString() { return this; }
.J'ai dit que dans ma réponse. J'ai dit que dans les Chaînes de la même référence est retourné
Puis-je demander le downvoters pourquoi le négatif de la marque? Merci de laisser un commentaire en expliquant pourquoi.
OriginalL'auteur Rodrigo Sasaki
String
classe implémenteCharSequence
et aussi elle s'étend deObject
classe. Donc si quelqu'un utilise un autre type deCharSequence
nous avons à catalogué comme votre première version(String)value
[
(String)value
si elle contientString
objet et(StringBuffer)value
pour StringBuffer type d'objet]Sur
toString()
nous avons pour remplacertoString()
méthode dans notre classe qui va montrer notre représentation des objets dans un format de Chaîne selon nos besoins. Si nous n'avons pas remplacer alors par défaut de mise en œuvre detoString()
deObject
classe sera héritée et donnera à la Chaîne en représentation hexadécimale du code de hachage de notre objet commeUserObject@12dacd1
Autres de la mise en œuvre de
CharSequence
sont CharBuffer, StringBuffer, StringBuilder1> (String)valeur signifie
value
contient la Chaîne de l'objet. Si il ne contient pasString
laClassCastException
sera levée lors de l'exécution. Typecasting va lancer la compilation exception si vous transtypage avec pertinence la hiérarchie des types. étant donné ci-dessous2> Invoquant toString() signifie
anyobject
n'est pas nécessaire d'être unString
objet. Bon primordialtoString()
méthode dans notre classe sera utile pour la Chaîne de la représentation de notre propre classe et aussi il jamais jeter une exception existe dans le monde java, car il héritetoString()
de la classe d'objet. Donc, si votre remplacement toString et vous imprimezSystem.out.println(userObject);
alors il ne sera pas montrer représentation hexadécimale du code de hachage de notre objet commeUserObject@12dacd1
Sur de nouvelles Long(valeur) et la (Longue)de la valeur.
new Long(value)
signifie, vous avez de la valeur quelong/String
vous souhaitez convertir en classe wrapperLong
objet. Ainsi, vous pouvez utiliser de Long(long), Long(String) constructeur que par l'état.Long typecasting explication est similaire à ci-dessus Chaîne de caractères spéciaux ou de toute typecasting.
(Long)value
signifie que lorsque vous obtenez le code comme ci-dessous, alors vous pouvez transtypage de Long, Integer, Double dépend de la valeur attribuée à la droite du signe égal.CharSequence
nous avons à catalogué", mais être prudent. Vous ne pouvez pas convertir unStringBuilder
à unString
par exemple, de la même manière que vous ne pouvez pas jeter unInteger
à unLong
Cela ne marchera pas. Dans
Number i = 10
, 10 est unint
, et obtient en boîte àInteger
.Integer
ne peut pas être lancé àLong
. Le compilateur ne unbox je viens de boîte de foyer àLong
. Aussi, préférezLong.valueOf(long)
à l'appel à un constructeur de vous-même.Très confus réponse, et plusieurs carrément des erreurs. CharSequence est complètement hors de propos. Vous n'avez pas à remplacer toString(). L'existence d'un transtypage n'implique pas que l'objet est du type correct. -1
Opps! Merci pour vos commentaires. Il signifie que je suis en vertu de l'impression, à tort, à cause de qui j'ai donné cette réponse. Je peux savoir ce qu'il est possible de la réponse correcte, sauf
accepted
réponse? Pouvez-vous m'aider à consulter un lien pour comprendre ce concept? Ou vous pouvez poster ce concept, de sorte que je comprends plus.Ce concept?
OriginalL'auteur AmitG