Olá, meu problema é o seguinte:
O seguinte código é apenas ilustrativo.
public class Client {
public Stream stream = new Stream();
}
public class Stream(){
public void writeInt(int intValue){
...
}
}
Ok, vou tentar explicar meu problema, estou carregando de um jar a classe Client, nessa classe Client contém o Field Stream(Por exemplo), e eu quero chamar o método writeInt, usando a instância que está na classe Client, mas quando vou invocar o método eu não sei de onde pego a instância da classe Stream(Não posso simplesmente criar outra instância) ^^
O programa acha O Field stream, pega a classe e consegue achar o método writeInt, mas na hora de invocar não tenho a instância do stream.
O melhor que consigo é esse erro:
object is not an instance of declaring class
Parte do meu Código:
Procura O Field Stream:
Field field = getClient().getDeclaredField("stream");
Class<?> streamClass;
if (field instanceof Field) {
streamClass = field.getType();
callStreamMethod(field, "writeWord", new Object[] {21000});
}
Invoca o método “writeWord”
public void callStreamMethod(Field field, String methodName, Object[] arguments) {
try {
Method method = null;
for (Method m : field.getType().getMethods()) {
if (m.getName().equals(methodName)) {
System.out.println("Calling Method: " + m.getName());
method = m;
}
}
if (method instanceof Method) {
method.setAccessible(true);
field.setAccessible(true);
method.invoke(field, arguments);
} else {
System.err.println("Method Not Found!");
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
Alguém consegue me dizer um meio de chamar o método writeWord?
Obrigado 
