summaryrefslogtreecommitdiff
path: root/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java
diff options
context:
space:
mode:
Diffstat (limited to 'sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java')
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java
new file mode 100644
index 0000000..5123c79
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java
@@ -0,0 +1,38 @@
+package tp7;
+
+import java.lang.reflect.*;
+import java.util.ArrayList;
+
+public class fabriquePerso {
+ public Personnage creer(String name) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
+ if (name.equals("Persoinvisible") || name.equals("Persobonus")) {
+ Class t = Class.forName(name);
+ Personnage ret = (Personnage) t.newInstance();
+ return ret;
+ }
+ else {
+ return null;
+ }
+ }
+ public Personnage ficheperso (Personnage pers) {
+ Class c=pers.getClass();
+ Field[] fields = c.getDeclaredFields();
+ ArrayList<Field> AF = tabtoarray(fields);
+ Method[] Methodes = c.getDeclaredMethods();
+ while ((c=c.getSuperclass()) != null) {
+ Field[] tmp = c.getDeclaredFields();
+ for (Field f : tmp) {
+ AF.add(f);
+ }
+
+ }
+ System.out.println("Entrer");
+ }
+ public ArrayList<Field> tabtoarray(Field[] f){
+ ArrayList<Field> ret = new ArrayList<Field>();
+ for (int i =0; i < f.length; i ++) {
+ ret.add(f[i]);
+ }
+ return ret;
+ }
+}