Un test avec la classe String fonctionne, mais ce qui est supose
marcher avec une autre classe comme Integer ne marche pas... Si je
prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String");
par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
public class TestForName
{
public static Object functionForName() throws Exception
{
Class MaClasse = Class.forName("java.lang.String");
return MaClasse.newInstance();
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Samuel Devulder
a écrit :
Bonjour,
Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String"); par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
artintel@free.fr a écrit :
Bonjour,
Un test avec la classe String fonctionne, mais ce qui est supose
marcher avec une autre classe comme Integer ne marche pas... Si je
prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String");
par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans
argument, contrairement à String.
public static Object functionForName() throws Exception
{
Class MaClasse = Class.forName("java.lang.String");
return MaClasse.newInstance();
}
Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String"); par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
Samuel Devulder
a écrit :
Bonjour,
Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String"); par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
artintel@free.fr a écrit :
Bonjour,
Un test avec la classe String fonctionne, mais ce qui est supose
marcher avec une autre classe comme Integer ne marche pas... Si je
prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String");
par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans
argument, contrairement à String.
public static Object functionForName() throws Exception
{
Class MaClasse = Class.forName("java.lang.String");
return MaClasse.newInstance();
}
Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String"); par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
Christian Laborde
Exactement. MaClasse.newInstance() est équivalent à new Integer(). Or il n'existe pas un tel constructeur.
Samuel Devulder a écrit :
a écrit :
Bonjour,
Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String"); par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
-- Christian Laborde La Révolution citoyenne, c'est sur : http://c.lab.over-blog.com/ Le forum des électrons libres : http://electrons-libres.forumactif.fr Les citoyens qui voient Net : http://www.netoyens.info True E-mail : remove -no-spam- Sentier des Vinches CH 1091 Grandvaux Suisse
Exactement. MaClasse.newInstance() est équivalent à
new Integer(). Or il n'existe pas un tel constructeur.
Samuel Devulder a écrit :
artintel@free.fr a écrit :
Bonjour,
Un test avec la classe String fonctionne, mais ce qui est supose
marcher avec une autre classe comme Integer ne marche pas... Si je
prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String");
par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans
argument, contrairement à String.
public static Object functionForName() throws Exception
{
Class MaClasse = Class.forName("java.lang.String");
return MaClasse.newInstance();
}
--
Christian Laborde
La Révolution citoyenne, c'est sur : http://c.lab.over-blog.com/
Le forum des électrons libres :
http://electrons-libres.forumactif.fr
Les citoyens qui voient Net : http://www.netoyens.info
True E-mail : remove -no-spam-
Sentier des Vinches
CH 1091 Grandvaux
Suisse
Exactement. MaClasse.newInstance() est équivalent à new Integer(). Or il n'existe pas un tel constructeur.
Samuel Devulder a écrit :
a écrit :
Bonjour,
Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String"); par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
-- Christian Laborde La Révolution citoyenne, c'est sur : http://c.lab.over-blog.com/ Le forum des électrons libres : http://electrons-libres.forumactif.fr Les citoyens qui voient Net : http://www.netoyens.info True E-mail : remove -no-spam- Sentier des Vinches CH 1091 Grandvaux Suisse
artintel
On 17 avr, 15:49, Christian Laborde wrote:
Exactement. MaClasse.newInstance() est équivalent à new Integer(). Or il n'existe pas un tel constructeur.
Samuel Devulder a écrit :
> a écrit : >> Bonjour,
>> Un test avec la classe String fonctionne, mais ce qui est supose >> marcher avec une autre classe comme Integer ne marche pas... Si je >> prend le code ci dessous et que je remplace :
>> Class MaClasse = Class.forName("java .lang.String"); >> par
>> Class MaClasse = Class.forName("java .lang.Integer");
>> J'ai le message d'erreur :
>> Exception : java.lang.Integer Cause : null
>> Je ne vois pas pourquoi ca ne marche pas ...?
> Peut être parce qu'il n'existe pas de constructeur d'Integer sans > argument, contrairement à String.
>> public static Object functionForName() throws Exception >> { >> Class MaClasse = Class.forName("java .lang.String"); >> return MaClasse.newInstance(); >> }
-- Christian Laborde La Révolution citoyenne, c'est sur :http://c.lab.over-blog.com/ Le forum des électrons libres :http://electrons-libres.forumactif.fr Les citoyens qui voient Net :http://www.netoyens.info True E-mail : remove -no-spam- Sentier des Vinches CH 1091 Grandvaux Suisse- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Effectivement, j'ai trouve sur le net une astuce, ca donne :
public class TestForName {
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.Integer"); java.lang.reflect.Constructor constructeur = MaClasse.getConstructor (new Class [] {Class.forName ("java.lang.String")}); return constructeur.newInstance (new Object [] {"6"}); }
On 17 avr, 15:49, Christian Laborde <aio-no-spam-n...@bluewin.ch>
wrote:
Exactement. MaClasse.newInstance() est équivalent à
new Integer(). Or il n'existe pas un tel constructeur.
Samuel Devulder a écrit :
> artin...@free.fr a écrit :
>> Bonjour,
>> Un test avec la classe String fonctionne, mais ce qui est supose
>> marcher avec une autre classe comme Integer ne marche pas... Si je
>> prend le code ci dessous et que je remplace :
>> Class MaClasse = Class.forName("java .lang.String");
>> par
>> Class MaClasse = Class.forName("java .lang.Integer");
>> J'ai le message d'erreur :
>> Exception : java.lang.Integer Cause : null
>> Je ne vois pas pourquoi ca ne marche pas ...?
> Peut être parce qu'il n'existe pas de constructeur d'Integer sans
> argument, contrairement à String.
>> public static Object functionForName() throws Exception
>> {
>> Class MaClasse = Class.forName("java .lang.String");
>> return MaClasse.newInstance();
>> }
--
Christian Laborde
La Révolution citoyenne, c'est sur :http://c.lab.over-blog.com/
Le forum des électrons libres :http://electrons-libres.forumactif.fr
Les citoyens qui voient Net :http://www.netoyens.info
True E-mail : remove -no-spam-
Sentier des Vinches
CH 1091 Grandvaux
Suisse- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Effectivement, j'ai trouve sur le net une astuce, ca donne :
public class TestForName
{
public static Object functionForName() throws Exception
{
Class MaClasse = Class.forName("java.lang.Integer");
java.lang.reflect.Constructor constructeur =
MaClasse.getConstructor (new Class [] {Class.forName
("java.lang.String")});
return constructeur.newInstance (new Object [] {"6"});
}
Exactement. MaClasse.newInstance() est équivalent à new Integer(). Or il n'existe pas un tel constructeur.
Samuel Devulder a écrit :
> a écrit : >> Bonjour,
>> Un test avec la classe String fonctionne, mais ce qui est supose >> marcher avec une autre classe comme Integer ne marche pas... Si je >> prend le code ci dessous et que je remplace :
>> Class MaClasse = Class.forName("java .lang.String"); >> par
>> Class MaClasse = Class.forName("java .lang.Integer");
>> J'ai le message d'erreur :
>> Exception : java.lang.Integer Cause : null
>> Je ne vois pas pourquoi ca ne marche pas ...?
> Peut être parce qu'il n'existe pas de constructeur d'Integer sans > argument, contrairement à String.
>> public static Object functionForName() throws Exception >> { >> Class MaClasse = Class.forName("java .lang.String"); >> return MaClasse.newInstance(); >> }
-- Christian Laborde La Révolution citoyenne, c'est sur :http://c.lab.over-blog.com/ Le forum des électrons libres :http://electrons-libres.forumactif.fr Les citoyens qui voient Net :http://www.netoyens.info True E-mail : remove -no-spam- Sentier des Vinches CH 1091 Grandvaux Suisse- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Effectivement, j'ai trouve sur le net une astuce, ca donne :
public class TestForName {
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.Integer"); java.lang.reflect.Constructor constructeur = MaClasse.getConstructor (new Class [] {Class.forName ("java.lang.String")}); return constructeur.newInstance (new Object [] {"6"}); }
Bonjour, Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace : Class MaClasse = Class.forName("java.lang.String"); par Class MaClasse = Class.forName("java.lang.Integer"); J'ai le message d'erreur : Exception : java.lang.Integer Cause : null Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
Pour information, dans ce cas d'utilisation il est inutile d'appeler Class.forName(). Cela sert à forcer le chargement d'une classe si elle n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit de faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et autres simplifications introduites avec Java 1.5. Et c'est aussi une meilleure pratique de ne laisser que les noms de classe commencer par une majuscule :
Bonjour,
Un test avec la classe String fonctionne, mais ce qui est supose
marcher avec une autre classe comme Integer ne marche pas... Si je
prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String");
par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans
argument, contrairement à String.
public static Object functionForName() throws Exception
{
Class MaClasse = Class.forName("java.lang.String");
return MaClasse.newInstance();
}
Pour information, dans ce cas d'utilisation il est inutile d'appeler
Class.forName(). Cela sert à forcer le chargement d'une classe si elle
n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit de
faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il
pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et
autres simplifications introduites avec Java 1.5. Et c'est aussi une
meilleure pratique de ne laisser que les noms de classe commencer par
une majuscule :
Bonjour, Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace : Class MaClasse = Class.forName("java.lang.String"); par Class MaClasse = Class.forName("java.lang.Integer"); J'ai le message d'erreur : Exception : java.lang.Integer Cause : null Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
Pour information, dans ce cas d'utilisation il est inutile d'appeler Class.forName(). Cela sert à forcer le chargement d'une classe si elle n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit de faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et autres simplifications introduites avec Java 1.5. Et c'est aussi une meilleure pratique de ne laisser que les noms de classe commencer par une majuscule :
wrote: >>> a écrit : >>>> Bonjour, >>>> Un test avec la classe String fonctionne, mais ce qui est supose >>>> marcher avec une autre classe comme Integer ne marche pas... Si je >>>> prend le code ci dessous et que je remplace : >>>> Class MaClasse = Class.forName("ja va.lang.String"); >>>> par >>>> Class MaClasse = Class.forName("ja va.lang.Integer"); >>>> J'ai le message d'erreur : >>>> Exception : java.lang.Integer Cause : null >>>> Je ne vois pas pourquoi ca ne marche pas ...? >>> Peut être parce qu'il n'existe pas de constructeur d'Integer sans >>> argument, contrairement à String. >>>> public static Object functionForName() throws Exception >>>> { >>>> Class MaClasse = Class.forName("ja va.lang.String"); >>>> return MaClasse.newInstance(); >>>> }
Pour information, dans ce cas d'utilisation il est inutile d'appeler Class.forName(). Cela sert à forcer le chargement d'une classe si elle n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit d e faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et autres simplifications introduites avec Java 1.5. Et c'est aussi une meilleure pratique de ne laisser que les noms de classe commencer par une majuscule :
-- Mayeul- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Ha, ok, j'essaye ca ..... Lundi ;o) Merci
On 17 avr, 17:58, Mayeul <mayeul.marg...@free.fr> wrote:
artin...@free.fr wrote:
>>> artin...@free.fr a écrit :
>>>> Bonjour,
>>>> Un test avec la classe String fonctionne, mais ce qui est supose
>>>> marcher avec une autre classe comme Integer ne marche pas... Si je
>>>> prend le code ci dessous et que je remplace :
>>>> Class MaClasse = Class.forName("ja va.lang.String");
>>>> par
>>>> Class MaClasse = Class.forName("ja va.lang.Integer");
>>>> J'ai le message d'erreur :
>>>> Exception : java.lang.Integer Cause : null
>>>> Je ne vois pas pourquoi ca ne marche pas ...?
>>> Peut être parce qu'il n'existe pas de constructeur d'Integer sans
>>> argument, contrairement à String.
>>>> public static Object functionForName() throws Exception
>>>> {
>>>> Class MaClasse = Class.forName("ja va.lang.String");
>>>> return MaClasse.newInstance();
>>>> }
Pour information, dans ce cas d'utilisation il est inutile d'appeler
Class.forName(). Cela sert à forcer le chargement d'une classe si elle
n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit d e
faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il
pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et
autres simplifications introduites avec Java 1.5. Et c'est aussi une
meilleure pratique de ne laisser que les noms de classe commencer par
une majuscule :
wrote: >>> a écrit : >>>> Bonjour, >>>> Un test avec la classe String fonctionne, mais ce qui est supose >>>> marcher avec une autre classe comme Integer ne marche pas... Si je >>>> prend le code ci dessous et que je remplace : >>>> Class MaClasse = Class.forName("ja va.lang.String"); >>>> par >>>> Class MaClasse = Class.forName("ja va.lang.Integer"); >>>> J'ai le message d'erreur : >>>> Exception : java.lang.Integer Cause : null >>>> Je ne vois pas pourquoi ca ne marche pas ...? >>> Peut être parce qu'il n'existe pas de constructeur d'Integer sans >>> argument, contrairement à String. >>>> public static Object functionForName() throws Exception >>>> { >>>> Class MaClasse = Class.forName("ja va.lang.String"); >>>> return MaClasse.newInstance(); >>>> }
Pour information, dans ce cas d'utilisation il est inutile d'appeler Class.forName(). Cela sert à forcer le chargement d'une classe si elle n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit d e faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et autres simplifications introduites avec Java 1.5. Et c'est aussi une meilleure pratique de ne laisser que les noms de classe commencer par une majuscule :
-- Mayeul- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Ha, ok, j'essaye ca ..... Lundi ;o) Merci
artintel
On 17 avr, 17:58, Mayeul wrote:
wrote: >>> a écrit : >>>> Bonjour, >>>> Un test avec la classe String fonctionne, mais ce qui est supose >>>> marcher avec une autre classe comme Integer ne marche pas... Si je >>>> prend le code ci dessous et que je remplace : >>>> Class MaClasse = Class.forName("ja va.lang.String"); >>>> par >>>> Class MaClasse = Class.forName("ja va.lang.Integer"); >>>> J'ai le message d'erreur : >>>> Exception : java.lang.Integer Cause : null >>>> Je ne vois pas pourquoi ca ne marche pas ...? >>> Peut être parce qu'il n'existe pas de constructeur d'Integer sans >>> argument, contrairement à String. >>>> public static Object functionForName() throws Exception >>>> { >>>> Class MaClasse = Class.forName("ja va.lang.String"); >>>> return MaClasse.newInstance(); >>>> }
Pour information, dans ce cas d'utilisation il est inutile d'appeler Class.forName(). Cela sert à forcer le chargement d'une classe si elle n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit d e faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et autres simplifications introduites avec Java 1.5. Et c'est aussi une meilleure pratique de ne laisser que les noms de classe commencer par une majuscule :
-- Mayeul- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Oui, daccord, mais ... :o) "l'objet de type Class correspondant à Integer" c'est vachement abstrait ca ... Un objet de type Class, bon, a la limite, j'imagine ce que ca peut etre, mais "correspondant" la, je decroche....
On 17 avr, 17:58, Mayeul <mayeul.marg...@free.fr> wrote:
artin...@free.fr wrote:
>>> artin...@free.fr a écrit :
>>>> Bonjour,
>>>> Un test avec la classe String fonctionne, mais ce qui est supose
>>>> marcher avec une autre classe comme Integer ne marche pas... Si je
>>>> prend le code ci dessous et que je remplace :
>>>> Class MaClasse = Class.forName("ja va.lang.String");
>>>> par
>>>> Class MaClasse = Class.forName("ja va.lang.Integer");
>>>> J'ai le message d'erreur :
>>>> Exception : java.lang.Integer Cause : null
>>>> Je ne vois pas pourquoi ca ne marche pas ...?
>>> Peut être parce qu'il n'existe pas de constructeur d'Integer sans
>>> argument, contrairement à String.
>>>> public static Object functionForName() throws Exception
>>>> {
>>>> Class MaClasse = Class.forName("ja va.lang.String");
>>>> return MaClasse.newInstance();
>>>> }
Pour information, dans ce cas d'utilisation il est inutile d'appeler
Class.forName(). Cela sert à forcer le chargement d'une classe si elle
n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit d e
faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il
pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et
autres simplifications introduites avec Java 1.5. Et c'est aussi une
meilleure pratique de ne laisser que les noms de classe commencer par
une majuscule :
--
Mayeul- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Oui, daccord, mais ... :o) "l'objet de type Class correspondant à
Integer" c'est vachement abstrait ca ... Un objet de type Class, bon,
a la limite, j'imagine ce que ca peut etre, mais "correspondant" la,
je decroche....
wrote: >>> a écrit : >>>> Bonjour, >>>> Un test avec la classe String fonctionne, mais ce qui est supose >>>> marcher avec une autre classe comme Integer ne marche pas... Si je >>>> prend le code ci dessous et que je remplace : >>>> Class MaClasse = Class.forName("ja va.lang.String"); >>>> par >>>> Class MaClasse = Class.forName("ja va.lang.Integer"); >>>> J'ai le message d'erreur : >>>> Exception : java.lang.Integer Cause : null >>>> Je ne vois pas pourquoi ca ne marche pas ...? >>> Peut être parce qu'il n'existe pas de constructeur d'Integer sans >>> argument, contrairement à String. >>>> public static Object functionForName() throws Exception >>>> { >>>> Class MaClasse = Class.forName("ja va.lang.String"); >>>> return MaClasse.newInstance(); >>>> }
Pour information, dans ce cas d'utilisation il est inutile d'appeler Class.forName(). Cela sert à forcer le chargement d'une classe si elle n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit d e faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et autres simplifications introduites avec Java 1.5. Et c'est aussi une meilleure pratique de ne laisser que les noms de classe commencer par une majuscule :
-- Mayeul- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Oui, daccord, mais ... :o) "l'objet de type Class correspondant à Integer" c'est vachement abstrait ca ... Un objet de type Class, bon, a la limite, j'imagine ce que ca peut etre, mais "correspondant" la, je decroche....
Mayeul
wrote:
On 17 avr, 17:58, Mayeul wrote:
wrote:
a écrit :
Bonjour, Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace : Class MaClasse = Class.forName("java.lang.String"); par Class MaClasse = Class.forName("java.lang.Integer"); J'ai le message d'erreur : Exception : java.lang.Integer Cause : null Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
Pour information, dans ce cas d'utilisation il est inutile d'appeler Class.forName(). Cela sert à forcer le chargement d'une classe si elle n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit de faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et autres simplifications introduites avec Java 1.5. Et c'est aussi une meilleure pratique de ne laisser que les noms de classe commencer par une majuscule :
-- Mayeul- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Oui, daccord, mais ... :o) "l'objet de type Class correspondant à Integer" c'est vachement abstrait ca ... Un objet de type Class, bon, a la limite, j'imagine ce que ca peut etre, mais "correspondant" la, je decroche....
Eh bien, disons, clazz tel que :
Class<Integer> clazz = Integer.class
OU
Integer i = new Integer(1); Class<Integer> clazz = (Class<Integer>) i.getClass();
Dans les 3 cas, clazz contient la même chose. C'est un objet de type Class, qui représente la classe Integer.
Il vaut mieux l'obtenir en faisant Integer.class parce que : - c'est plus direct, plus lisible - i.getClass() nécessite d'avoir une instance d'objet de la classe en question. Et nécessite un cast générique explicite, aussi : (Class<Integer>) - Class.forName() sert surtout à faire charger une classe au cas où elle ne le soit pas déjà. Cela est utile dans des cas assez spécifiques, comme charger un pilote de base de données. C'est inutile pour Integer ou pour toute classe qu'on utilise directement dans le programme. Et puis, il y a risque de faire une typo dans le paramètre "java.lang.Integer".
-- Mayeul
artintel@free.fr wrote:
On 17 avr, 17:58, Mayeul <mayeul.marg...@free.fr> wrote:
artin...@free.fr wrote:
artin...@free.fr a écrit :
Bonjour,
Un test avec la classe String fonctionne, mais ce qui est supose
marcher avec une autre classe comme Integer ne marche pas... Si je
prend le code ci dessous et que je remplace :
Class MaClasse = Class.forName("java.lang.String");
par
Class MaClasse = Class.forName("java.lang.Integer");
J'ai le message d'erreur :
Exception : java.lang.Integer Cause : null
Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans
argument, contrairement à String.
public static Object functionForName() throws Exception
{
Class MaClasse = Class.forName("java.lang.String");
return MaClasse.newInstance();
}
Pour information, dans ce cas d'utilisation il est inutile d'appeler
Class.forName(). Cela sert à forcer le chargement d'une classe si elle
n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit de
faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il
pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et
autres simplifications introduites avec Java 1.5. Et c'est aussi une
meilleure pratique de ne laisser que les noms de classe commencer par
une majuscule :
--
Mayeul- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Oui, daccord, mais ... :o) "l'objet de type Class correspondant à
Integer" c'est vachement abstrait ca ... Un objet de type Class, bon,
a la limite, j'imagine ce que ca peut etre, mais "correspondant" la,
je decroche....
Eh bien, disons, clazz tel que :
Class<Integer> clazz = Integer.class
OU
Integer i = new Integer(1);
Class<Integer> clazz = (Class<Integer>) i.getClass();
Dans les 3 cas, clazz contient la même chose. C'est un objet de type
Class, qui représente la classe Integer.
Il vaut mieux l'obtenir en faisant Integer.class parce que :
- c'est plus direct, plus lisible
- i.getClass() nécessite d'avoir une instance d'objet de la classe en
question. Et nécessite un cast générique explicite, aussi : (Class<Integer>)
- Class.forName() sert surtout à faire charger une classe au cas où elle
ne le soit pas déjà. Cela est utile dans des cas assez spécifiques,
comme charger un pilote de base de données. C'est inutile pour Integer
ou pour toute classe qu'on utilise directement dans le programme. Et
puis, il y a risque de faire une typo dans le paramètre "java.lang.Integer".
Bonjour, Un test avec la classe String fonctionne, mais ce qui est supose marcher avec une autre classe comme Integer ne marche pas... Si je prend le code ci dessous et que je remplace : Class MaClasse = Class.forName("java.lang.String"); par Class MaClasse = Class.forName("java.lang.Integer"); J'ai le message d'erreur : Exception : java.lang.Integer Cause : null Je ne vois pas pourquoi ca ne marche pas ...?
Peut être parce qu'il n'existe pas de constructeur d'Integer sans argument, contrairement à String.
public static Object functionForName() throws Exception { Class MaClasse = Class.forName("java.lang.String"); return MaClasse.newInstance(); }
Pour information, dans ce cas d'utilisation il est inutile d'appeler Class.forName(). Cela sert à forcer le chargement d'une classe si elle n'est pas déjà chargée.
Pour Obtenir l'objet de type Class correspondant à Integer, il suffit de faire :
Class MaClasse = Integer.class;
Ce qui évite d'utiliser une chaîne de caractère dans laquelle il pourrait y avoir une typo.
De plus, c'est une meilleure pratique d'utiliser les génériques et autres simplifications introduites avec Java 1.5. Et c'est aussi une meilleure pratique de ne laisser que les noms de classe commencer par une majuscule :
-- Mayeul- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Oui, daccord, mais ... :o) "l'objet de type Class correspondant à Integer" c'est vachement abstrait ca ... Un objet de type Class, bon, a la limite, j'imagine ce que ca peut etre, mais "correspondant" la, je decroche....
Eh bien, disons, clazz tel que :
Class<Integer> clazz = Integer.class
OU
Integer i = new Integer(1); Class<Integer> clazz = (Class<Integer>) i.getClass();
Dans les 3 cas, clazz contient la même chose. C'est un objet de type Class, qui représente la classe Integer.
Il vaut mieux l'obtenir en faisant Integer.class parce que : - c'est plus direct, plus lisible - i.getClass() nécessite d'avoir une instance d'objet de la classe en question. Et nécessite un cast générique explicite, aussi : (Class<Integer>) - Class.forName() sert surtout à faire charger une classe au cas où elle ne le soit pas déjà. Cela est utile dans des cas assez spécifiques, comme charger un pilote de base de données. C'est inutile pour Integer ou pour toute classe qu'on utilise directement dans le programme. Et puis, il y a risque de faire une typo dans le paramètre "java.lang.Integer".