OVH Cloud OVH Cloud

cannot resolve symbol

8 réponses
Avatar
yvon.thoravalNO-SPAM
le message d'erreur de ant (javac) :

[javac]
/Users/yvonthor/work/tableview_my/sbrunner/gui/tableView/TestTableView.j
ava:91: cannot resolve symbol
[javac] symbol : constructor Row
(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,jav
a.lang.Object)
[javac] location: class sbrunner.gui.tableView.TestTableView.Row
[javac] model.addRow(new Row(row.get(0), row.get(1),
row.get(2), row.get(3), row.get(4)));
[javac] ^


la ligne icriminée est dans le main, c'est arrangé comme ça :

public class TestTableView {

...

public static void main(String[] pArgs) {
...
la ligne incriminée
...
}

...

public static class Row {

private String mDescription;

private Integer mVintage;

private Date mBuyDate;

private Integer mBuyNumber;

private Integer mCurrentNumber;


public Row(String pDescription, int pVintage, Date
pBuyDate, int pBuyNumber, int pCurrentNumber) {

...
}

tous les getters et setters...

}


par ailleurs addRow est dans
sbrunner.gui.tableView.DefaultTableViewModel; qui est bien importé.

je ne comprend pas le message d'erreur, car l'auteur original Stéphane
Brunner, utilise ce même addRow, même new Row() dans, ce qui me semble
être, les mêmes conditions.

en fait j'essaie de substituer le remplissage de rows par des valeurs
prédéfinies au remplissqage par lecture d'une database, je dois faire,
au passage une conversion List -> Array :

l'auteur original :

/*

Row[] rows =

{

new Row("toto", "This is my toto", 1, "Hello", new
Date(1000000000000L)),

[...]
new Row("hhh", "This is my hhh", 1, "111", new
Date(900000000000L))};

*/



// final DefaultTableViewModel model = new
DefaultTableViewModel(columns, Arrays.asList(rows));

moi :

(rowsAry est à null là)


final DefaultTableViewModel model = new
DefaultTableViewModel(columns, rowsAry);



for (int ir = 0; ir < rows.size(); ir++) {

List row = (List)rows.get(ir);
model.addRow(new Row(row.get(0), row.get(1), row.get(2),
row.get(3), row.get(4)));


}


L'auteur original :
/*

for (int i = 0 ; i < 20000 ; i++) {

model.addRow(new Row("" + 1, "This is my " + i, 1, "" + (20000 -
i), new Date()));

}

*/




--
yt

8 réponses

Avatar
Farid
Probleme de declaration de constructor je pense.

Apriori dans ton code tu appelles le constructor:

Row (Object obj1, Object obj2,Object obj3,Object obj4,Object obj5)

Hors d'apres le code que tu as poste le constructor est definie comme

Row(String pDescription, int pVintage, Date pBuyDate, int pBuyNumber, int
pCurrentNumber).

Donc soit creer un constructor avec des obj... ou utilises des Interger au
lieu de int dans ton constructor existant:
int n'est pas une instance d'Object, mais Integer si.

Farid.


"Yvon Thoraval" wrote in message
news:1geju5r.efmviwb8w1seN%
le message d'erreur de ant (javac) :

[javac]
/Users/yvonthor/work/tableview_my/sbrunner/gui/tableView/TestTableView.j
ava:91: cannot resolve symbol
[javac] symbol : constructor Row
(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,jav
a.lang.Object)
[javac] location: class sbrunner.gui.tableView.TestTableView.Row
[javac] model.addRow(new Row(row.get(0), row.get(1),
row.get(2), row.get(3), row.get(4)));
[javac] ^


la ligne icriminée est dans le main, c'est arrangé comme ça :

public class TestTableView {

...

public static void main(String[] pArgs) {
...
la ligne incriminée
...
}

...

public static class Row {

private String mDescription;

private Integer mVintage;

private Date mBuyDate;

private Integer mBuyNumber;

private Integer mCurrentNumber;


public Row(String pDescription, int pVintage, Date
pBuyDate, int pBuyNumber, int pCurrentNumber) {

...
}

tous les getters et setters...

}


par ailleurs addRow est dans
sbrunner.gui.tableView.DefaultTableViewModel; qui est bien importé.

je ne comprend pas le message d'erreur, car l'auteur original Stéphane
Brunner, utilise ce même addRow, même new Row() dans, ce qui me semble
être, les mêmes conditions.

en fait j'essaie de substituer le remplissage de rows par des valeurs
prédéfinies au remplissqage par lecture d'une database, je dois faire,
au passage une conversion List -> Array :

l'auteur original :

/*

Row[] rows >
{

new Row("toto", "This is my toto", 1, "Hello", new
Date(1000000000000L)),

[...]
new Row("hhh", "This is my hhh", 1, "111", new
Date(900000000000L))};

*/



// final DefaultTableViewModel model = new
DefaultTableViewModel(columns, Arrays.asList(rows));

moi :

(rowsAry est à null là)


final DefaultTableViewModel model = new
DefaultTableViewModel(columns, rowsAry);



for (int ir = 0; ir < rows.size(); ir++) {

List row = (List)rows.get(ir);
model.addRow(new Row(row.get(0), row.get(1), row.get(2),
row.get(3), row.get(4)));


}


L'auteur original :
/*

for (int i = 0 ; i < 20000 ; i++) {

model.addRow(new Row("" + 1, "This is my " + i, 1, "" + (20000 -
i), new Date()));

}

*/




--
yt


Avatar
yvon.thoravalNO-SPAM
Farid wrote:

Apriori dans ton code tu appelles le constructor:

Row (Object obj1, Object obj2,Object obj3,Object obj4,Object obj5)

Hors d'apres le code que tu as poste le constructor est definie comme

Row(String pDescription, int pVintage, Date pBuyDate, int pBuyNumber, int
pCurrentNumber).


OK, merci, j'ai mis des Integer à la place des int, mais bon, ça
s'agrave, javac me trouve une erreur + tôt :

[javac]
/Users/yvonthor/work/tableview_my/sbrunner/gui/tableView/TestTableView.j
ava:86: cannot resolve symbol
[javac] symbol : constructor DefaultTableViewModel
(sbrunner.gui.tableView.TableViewColumn[],sbrunner.gui.tableView.TestTab
leView.Row[])
[javac] location: class sbrunner.gui.tableView.DefaultTableViewModel
[javac] final DefaultTableViewModel model = new
DefaultTableViewModel(columns, rowsAry);
[javac] ^
[javac]
/Users/yvonthor/work/tableview_my/sbrunner/gui/tableView/TestTableView.j
ava:91: cannot resolve symbol
[javac] symbol : constructor Row
(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,jav
a.lang.Object)
[javac] location: class sbrunner.gui.tableView.TestTableView.Row
[javac] model.addRow(new Row(row.get(0), row.get(1),
row.get(2), row.get(3), row.get(4)));
[javac] ^

donc le constructor de DefaultTableViewModel demande :

sbrunner.gui.tableView.TableViewColumn[],sbrunner.gui.tableView.TestTabl
eView.Row[]

moi, je fais :

TableViewColumn[] columns
{

new DefaultTableViewColumn(

"Description",

Row.class.getDeclaredMethod("getDescription", null),

Row.class.getDeclaredMethod("setDescription", new Class[]
{String.class})),

new DefaultTableViewColumn(

"Millesime",

Row.class.getDeclaredMethod("getVintage", null),

Row.class.getDeclaredMethod("setVintage", new Class[]
{Integer.class})),

[...] (c'est ce qui est demandé)
};


et pour sbrunner.gui.tableView.TestTableView.Row[] :

Row[] rowsAry = null;

final DefaultTableViewModel model = new
DefaultTableViewModel(columns, rowsAry);

et je n'ajoute qu'après les rows provenant de la bd :

for (int ir = 0; ir < rows.size(); ir++) {
List row = (List)rows.get(ir);
model.addRow(new Row(row.get(0), row.get(1), row.get(2),
row.get(3), row.get(4)));
}


un des constructeurs de DefaultTableViewColumn étant :

public DefaultTableViewColumn(String pName, Method pGetter, Method
pSetter) {...}
--
yt

Avatar
Farid
hum... je m'attendais a ce qu'un classcastexception soit genere a un moment
ou un autre, mais la je vois que c'est un peu plus grave: un petit boulot de
refactoring a faire...

Aurais-tu la possibilite d'utiliser un ide genre eclipse, ou autre ?
ca permettrait de voir tout de suite ou sont les problems.

Si tu peux simplifier aux max ton application(creer un tout petit truc) et
me l'envoyer par email je pourrais mieux voir ce que tu fais, et refactorer
le truc au besoin ?

Si ca t'interesse, fais le moi savoir et je t'envoie mon email (ton email
est boen celle que tu publie sans le no-spam ?)

Farid.


"Yvon Thoraval" wrote in message
news:1gejx4b.rj580p1bhgmm2N%
Farid wrote:

Apriori dans ton code tu appelles le constructor:

Row (Object obj1, Object obj2,Object obj3,Object obj4,Object obj5)

Hors d'apres le code que tu as poste le constructor est definie comme

Row(String pDescription, int pVintage, Date pBuyDate, int pBuyNumber,
int


pCurrentNumber).


OK, merci, j'ai mis des Integer à la place des int, mais bon, ça
s'agrave, javac me trouve une erreur + tôt :

[javac]
/Users/yvonthor/work/tableview_my/sbrunner/gui/tableView/TestTableView.j
ava:86: cannot resolve symbol
[javac] symbol : constructor DefaultTableViewModel
(sbrunner.gui.tableView.TableViewColumn[],sbrunner.gui.tableView.TestTab
leView.Row[])
[javac] location: class sbrunner.gui.tableView.DefaultTableViewModel
[javac] final DefaultTableViewModel model = new
DefaultTableViewModel(columns, rowsAry);
[javac] ^
[javac]
/Users/yvonthor/work/tableview_my/sbrunner/gui/tableView/TestTableView.j
ava:91: cannot resolve symbol
[javac] symbol : constructor Row
(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,jav
a.lang.Object)
[javac] location: class sbrunner.gui.tableView.TestTableView.Row
[javac] model.addRow(new Row(row.get(0), row.get(1),
row.get(2), row.get(3), row.get(4)));
[javac] ^

donc le constructor de DefaultTableViewModel demande :

sbrunner.gui.tableView.TableViewColumn[],sbrunner.gui.tableView.TestTabl
eView.Row[]

moi, je fais :

TableViewColumn[] columns >
{

new DefaultTableViewColumn(

"Description",

Row.class.getDeclaredMethod("getDescription", null),

Row.class.getDeclaredMethod("setDescription", new Class[]
{String.class})),

new DefaultTableViewColumn(

"Millesime",

Row.class.getDeclaredMethod("getVintage", null),

Row.class.getDeclaredMethod("setVintage", new Class[]
{Integer.class})),

[...] (c'est ce qui est demandé)
};


et pour sbrunner.gui.tableView.TestTableView.Row[] :

Row[] rowsAry = null;

final DefaultTableViewModel model = new
DefaultTableViewModel(columns, rowsAry);

et je n'ajoute qu'après les rows provenant de la bd :

for (int ir = 0; ir < rows.size(); ir++) {
List row = (List)rows.get(ir);
model.addRow(new Row(row.get(0), row.get(1), row.get(2),
row.get(3), row.get(4)));
}


un des constructeurs de DefaultTableViewColumn étant :

public DefaultTableViewColumn(String pName, Method pGetter, Method
pSetter) {...}
--
yt



Avatar
yvon.thoravalNO-SPAM
Farid wrote:
Aurais-tu la possibilite d'utiliser un ide genre eclipse, ou autre ?
ca permettrait de voir tout de suite ou sont les problems.


j'ai bien eclipse sur ma bécanne, mais je ne sais pas m'en servir pour
le moment.

Si tu peux simplifier aux max ton application(creer un tout petit truc) et
me l'envoyer par email je pourrais mieux voir ce que tu fais, et refactorer
le truc au besoin ?


pas facile, car en fait, je cherche à tester, au + simple possible,
"tableview" de Stéphane Brunner
(http://sourceforge.net/projects/tableview/) il a réalisé un
TestTableView.java avec des données entrées par Arrays :

Row[] rows
{
new Row("toto", "This is my toto", 1, "Hello", new
Date(1000000000000L)),

[...]
};

et je souhaite substituer à ces rows une List de List provenant d'une
lecture d'une bd. Mes données ne sont pas de même type, j'ai donc changé
le constructeur de Row[] pour l'adapter à ça :

Row(String pDescription, Integer pVintage, Date pBuyDate, Integer
pBuyNumber, Integer pCurrentNumber)

Bien sûr je change aussi les models des colonnes:
TableViewColumn[] columns
{

new DefaultTableViewColumn(

"Description",

Row.class.getDeclaredMethod("getDescription", null),

Row.class.getDeclaredMethod("setDescription", new Class[]
{String.class})),

new DefaultTableViewColumn(

"Millesime",

Row.class.getDeclaredMethod("getVintage", null),

Row.class.getDeclaredMethod("setVintage", new Class[]
{Integer.class})),

new DefaultTableViewColumn(

"Date achat",

Row.class.getDeclaredMethod("getBuyDate", null),

Row.class.getDeclaredMethod("setBuyDate", new Class[]
{Date.class})),

new DefaultTableViewColumn(

"QA",

Row.class.getDeclaredMethod("getBuyNumber", null),

Row.class.getDeclaredMethod("setBuyNumber", new Class[]
{Integer.class})),

new DefaultTableViewColumn(

"QR",

Row.class.getDeclaredMethod("getCurrentNumber", null),

Row.class.getDeclaredMethod("setCurrentNumber", new Class[]
{Integer.class}))

};




Si ca t'interesse, fais le moi savoir et je t'envoie mon email (ton email
est boen celle que tu publie sans le no-spam ?)


non, le mien, en plus de retirer NO-SPAM, il faut inverser nom et
prénom.

Ce que je peux t'envoyer, c'est le "TestTableView.java" original (il y a
15 fichiers dans les src de s brunner)

+ celui que j'essaie de mettre au point sachant que ce qui met retourné
par ma bd est une List de rows, chaque row étant elle-même une liste...
--
yt

Avatar
Farid
je t'ai envoyer 2 emails, tu les as recu ?

Farid.

"Yvon Thoraval" wrote in message
news:1gejypw.zr6g5m33il4wN%
Farid wrote:
Aurais-tu la possibilite d'utiliser un ide genre eclipse, ou autre ?
ca permettrait de voir tout de suite ou sont les problems.


j'ai bien eclipse sur ma bécanne, mais je ne sais pas m'en servir pour
le moment.

Si tu peux simplifier aux max ton application(creer un tout petit truc)
et


me l'envoyer par email je pourrais mieux voir ce que tu fais, et
refactorer


le truc au besoin ?


pas facile, car en fait, je cherche à tester, au + simple possible,
"tableview" de Stéphane Brunner
(http://sourceforge.net/projects/tableview/) il a réalisé un
TestTableView.java avec des données entrées par Arrays :

Row[] rows >
{
new Row("toto", "This is my toto", 1, "Hello", new
Date(1000000000000L)),

[...]
};

et je souhaite substituer à ces rows une List de List provenant d'une
lecture d'une bd. Mes données ne sont pas de même type, j'ai donc changé
le constructeur de Row[] pour l'adapter à ça :

Row(String pDescription, Integer pVintage, Date pBuyDate, Integer
pBuyNumber, Integer pCurrentNumber)

Bien sûr je change aussi les models des colonnes:
TableViewColumn[] columns >
{

new DefaultTableViewColumn(

"Description",

Row.class.getDeclaredMethod("getDescription", null),

Row.class.getDeclaredMethod("setDescription", new Class[]
{String.class})),

new DefaultTableViewColumn(

"Millesime",

Row.class.getDeclaredMethod("getVintage", null),

Row.class.getDeclaredMethod("setVintage", new Class[]
{Integer.class})),

new DefaultTableViewColumn(

"Date achat",

Row.class.getDeclaredMethod("getBuyDate", null),

Row.class.getDeclaredMethod("setBuyDate", new Class[]
{Date.class})),

new DefaultTableViewColumn(

"QA",

Row.class.getDeclaredMethod("getBuyNumber", null),

Row.class.getDeclaredMethod("setBuyNumber", new Class[]
{Integer.class})),

new DefaultTableViewColumn(

"QR",

Row.class.getDeclaredMethod("getCurrentNumber", null),

Row.class.getDeclaredMethod("setCurrentNumber", new Class[]
{Integer.class}))

};




Si ca t'interesse, fais le moi savoir et je t'envoie mon email (ton
email


est boen celle que tu publie sans le no-spam ?)


non, le mien, en plus de retirer NO-SPAM, il faut inverser nom et
prénom.

Ce que je peux t'envoyer, c'est le "TestTableView.java" original (il y a
15 fichiers dans les src de s brunner)

+ celui que j'essaie de mettre au point sachant que ce qui met retourné
par ma bd est une List de rows, chaque row étant elle-même une liste...
--
yt



Avatar
Farid
voila, je t'ai envoyer la nouvelle classe TestTableView par email.

J'ai lancer le prog, et ca marche sans problem.

Farid.

"Yvon Thoraval" wrote in message
news:1gejypw.zr6g5m33il4wN%
Farid wrote:
Aurais-tu la possibilite d'utiliser un ide genre eclipse, ou autre ?
ca permettrait de voir tout de suite ou sont les problems.


j'ai bien eclipse sur ma bécanne, mais je ne sais pas m'en servir pour
le moment.

Si tu peux simplifier aux max ton application(creer un tout petit truc)
et


me l'envoyer par email je pourrais mieux voir ce que tu fais, et
refactorer


le truc au besoin ?


pas facile, car en fait, je cherche à tester, au + simple possible,
"tableview" de Stéphane Brunner
(http://sourceforge.net/projects/tableview/) il a réalisé un
TestTableView.java avec des données entrées par Arrays :

Row[] rows >
{
new Row("toto", "This is my toto", 1, "Hello", new
Date(1000000000000L)),

[...]
};

et je souhaite substituer à ces rows une List de List provenant d'une
lecture d'une bd. Mes données ne sont pas de même type, j'ai donc changé
le constructeur de Row[] pour l'adapter à ça :

Row(String pDescription, Integer pVintage, Date pBuyDate, Integer
pBuyNumber, Integer pCurrentNumber)

Bien sûr je change aussi les models des colonnes:
TableViewColumn[] columns >
{

new DefaultTableViewColumn(

"Description",

Row.class.getDeclaredMethod("getDescription", null),

Row.class.getDeclaredMethod("setDescription", new Class[]
{String.class})),

new DefaultTableViewColumn(

"Millesime",

Row.class.getDeclaredMethod("getVintage", null),

Row.class.getDeclaredMethod("setVintage", new Class[]
{Integer.class})),

new DefaultTableViewColumn(

"Date achat",

Row.class.getDeclaredMethod("getBuyDate", null),

Row.class.getDeclaredMethod("setBuyDate", new Class[]
{Date.class})),

new DefaultTableViewColumn(

"QA",

Row.class.getDeclaredMethod("getBuyNumber", null),

Row.class.getDeclaredMethod("setBuyNumber", new Class[]
{Integer.class})),

new DefaultTableViewColumn(

"QR",

Row.class.getDeclaredMethod("getCurrentNumber", null),

Row.class.getDeclaredMethod("setCurrentNumber", new Class[]
{Integer.class}))

};




Si ca t'interesse, fais le moi savoir et je t'envoie mon email (ton
email


est boen celle que tu publie sans le no-spam ?)


non, le mien, en plus de retirer NO-SPAM, il faut inverser nom et
prénom.

Ce que je peux t'envoyer, c'est le "TestTableView.java" original (il y a
15 fichiers dans les src de s brunner)

+ celui que j'essaie de mettre au point sachant que ce qui met retourné
par ma bd est une List de rows, chaque row étant elle-même une liste...
--
yt



Avatar
yvon.thoravalNO-SPAM
Farid wrote:

je t'ai envoyer 2 emails, tu les as recu ?


oui, je t'envoies ce qui manque...
--
yt

Avatar
yvon.thoravalNO-SPAM
Farid wrote:

voila, je t'ai envoyer la nouvelle classe TestTableView par email.


bon, je vais pouvoir voir où est mon erreur...
--
yt