Folgendes Problem:
1. Ich habe eine abstrakte Basisklasse:
[Java]
import java.lang.reflect.Field;
public abstract class BaseClass {
protected void showFields()
{
Field[] fields = this.getClass().getFields(); // DAS KLAPPT WOHL SO NICHT ???
System.out.println(fields.length);
for (int i = 0; i < fields.length; i++)
System.out.println("name="+fields.getName());
}
}
[/Java]
2. Die abgeleitete Klasse:
[Java]
public class TestClass extends BaseClass{
private int number;
private String string;
public TestClass()
{
this.number = 0;
this.string = "";
}
/**
* @return the number
*/
public int getNumber() {
return number;
}
/**
* @return the string
*/
public String getString() {
return string;
}
/**
* @param number the number to set
*/
public void setNumber(int number) {
this.number = number;
}
/**
* @param string the string to set
*/
public void setString(String string) {
this.string = string;
}
}
[/Java]
3. Die Verwendung wie folgt funktioniert nicht:
[Java]
public class test {
/**
* @param args
* @throws InterruptedException
* @throws DatatypeConfigurationException
*/
public static void main(String[] args) throws InterruptedException, DatatypeConfigurationException
{
TestClass testc = new TestClass();
testc.setNumber(123);
testc.setString("hello");
testc.showFields();
}
}
[/Java]
Wie komme ich in der Methode der abstrakten Klasse an die Felder der Implementierenden Klasse ran? Ziel ist es einfach alle Felder der implemntierenden Klasse von einem Object gleichen Typs kopieren zu lassen, also eine generische clone(Object o) Methode. Geht das irgendwie? Ich will erreichen das sich ein Objekt das von dieser Basisklasse abgeleitet ist selbst marshallen/unmarshallen kann. Das Unmarshallen ist dabei das Problem....
1. Ich habe eine abstrakte Basisklasse:
[Java]
import java.lang.reflect.Field;
public abstract class BaseClass {
protected void showFields()
{
Field[] fields = this.getClass().getFields(); // DAS KLAPPT WOHL SO NICHT ???
System.out.println(fields.length);
for (int i = 0; i < fields.length; i++)
System.out.println("name="+fields.getName());
}
}
[/Java]
2. Die abgeleitete Klasse:
[Java]
public class TestClass extends BaseClass{
private int number;
private String string;
public TestClass()
{
this.number = 0;
this.string = "";
}
/**
* @return the number
*/
public int getNumber() {
return number;
}
/**
* @return the string
*/
public String getString() {
return string;
}
/**
* @param number the number to set
*/
public void setNumber(int number) {
this.number = number;
}
/**
* @param string the string to set
*/
public void setString(String string) {
this.string = string;
}
}
[/Java]
3. Die Verwendung wie folgt funktioniert nicht:
[Java]
public class test {
/**
* @param args
* @throws InterruptedException
* @throws DatatypeConfigurationException
*/
public static void main(String[] args) throws InterruptedException, DatatypeConfigurationException
{
TestClass testc = new TestClass();
testc.setNumber(123);
testc.setString("hello");
testc.showFields();
}
}
[/Java]
Wie komme ich in der Methode der abstrakten Klasse an die Felder der Implementierenden Klasse ran? Ziel ist es einfach alle Felder der implemntierenden Klasse von einem Object gleichen Typs kopieren zu lassen, also eine generische clone(Object o) Methode. Geht das irgendwie? Ich will erreichen das sich ein Objekt das von dieser Basisklasse abgeleitet ist selbst marshallen/unmarshallen kann. Das Unmarshallen ist dabei das Problem....