Java Double obtenir initialisée à 0.0
J'ai un haricot où j'ai un champ "CustAmount "qui est le double, j'ai essayé de tester la fève et je ne semble pas le comprendre ceci: Quand je le lance sur ma machine locale, il est initialisé à 0.0 lorsqu'il est instancié. Lorsque j'exécute le même code dans mon linux en environnement de test, il reste nulle. en raison de laquelle il ya une différence dans les données extraites de sens que si j'envoie le CustAmount nulle à mon Backend-je obtenir certaines données, mais si j'envoie CustAmount 0,0 que la requête est effectuée sur la base de 0,0 et m'envoie rien en retour.
Comment est-ce possible si le code est le même, Par hasard, est-il possible que quand je fais de nouvelles MyBean() compilé en java 1.5 le double reste nulle et en 1.6, il est initialisé à 0.0.
Je ne sais pas si c'est quelque chose qui se passe dans les deux versions de Java, mais c'est la seule différence sur ma fin.
Merci pour toute indication.
L'ajout d'extrait de code :
public class MyBean {
private double custAmount;
public void setCustAmount(double custAmount) {
this.custAmount = custAmount;
}
public double getCustAmount() {
return custAmount;
}
}
Et je viens de faire
MyBean mybean = new MyBean();
ce n'est pas un Double mais un double.
Syed..
- Certains petit morceau de code qui reproduit ce, pour vous aider:)
- Cela n'a rien à voir avec les versions de Java et tout à voir avec l'environnement du serveur. Sans doute c'est une application web: êtes-vous exécuter la même version de la même serveur sur deux machines?
- Ses un simple nouvel MyBean() que le double obtient la valeur 0.0, donc il n'y a pas beaucoup de code
- 1) "il n'y a pas beaucoup de code" Pour mieux aider plus tôt, après une SSCCE. 2) Un
CustAmount
champ doit êtrecustAmount
. Je ne suis pas sûr si le cas précis est important pour les haricots, mais je recommande de le changer. - oui c'est une application web, oui les serveurs sont les mêmes je suis en cours d'exécution websphere 7 et le test env est également exécuter la même version.
- désolé c'était une faute de frappe sur ma fin
- Copier/coller est plus utile que des excuses. 😉
- Nous avons besoin d'au moins une définition de la double champ, tout setters/getters et comment vous les envoyer/récupérer. Sans aucun code (idéalement SSCCE), il est difficile de vous aider. En règle générale: plus l'effort que vous mettez dans votre question le plus d'effort gens mettent dans leurs réponses.
Vous devez vous connecter pour publier un commentaire.
Java
double
champ est initialisé par défaut à0.0
. JavaDouble
champ est initialisé par défaut ànull
. Ces deux faits vont être vrai, n'importe quelle version de Java que vous utilisez, et n'importe quel environnement d'exécution.Si vous voyez des comportements différents dans des environnements différents, alors l'explication la plus probable est que vous êtes l'exécution de code DIFFÉRENT dans les différents environnements (ou l'appel de ce même code dans les façons de faire). L'affichage du code qui expose le problème peut point à un autre problème, mais j'en doute.
Basé sur votre posté code, il est IMPOSSIBLE pour
custAmount
êtrenull
. Dans le cas où vous voyez unnull
, vous devez être en utilisant une autre version de ce code, OU lenull
doit être à venir à partir d'une autre source.double
ne peut pas être null car il s'agit d'une primitive. Je suis d'accord avec Stephen, vous êtes probablement à l'exécution de code différent.J'ai eu un problème similaire. Je pensais que mon Long initialise à 0. Mais il n'était pas initialisé, mais à partir de la
<p:selectOneMenu />
sur ma page.Donc, essayez de vérifier votre page, si vous ne pas le mettre en quelque sorte à partir de votre forme.