java,一个包下面有2个类 A 和B A类里有一个内部类C,请问C中的的参数怎么在B类中获取到呢?

而且这个C还是匿名内部类,我只想获得C里面的一个String,我用的是GUI,用GUI的一个时间获得了一个String,想吧这个String放在B的FileReader里面,我想过各种方法获得的都是NULL,
我试过全局变量 set get方法.用数组 数组可以不过用在BufferedReader(new FileReader())这个里面用循环的话 也不行 用过什么吧这个String写带一个文件在去读也不行 用StringBuffer也不行用GUI界面的getText去取TextArea的值也不行
如果让我吧内部类写出去的话 值确实可以获得到 但是我有用线程 会报一个栈内存溢出错误....

第1个回答  2013-05-16
这样做。。
在类A里面定义一个全局变量 result
然后在C里面调用 A.this.result = C.string
这样 就传递到A了。。。
然后在B里面 你就可以直接调用A。的全局变量追问

也试过,同样是NULL

第2个回答  2013-05-26
java访问某个类的方法、变量时,采用“类名.方法名()"、“类名.变量名",而匿名内部类之所以叫它匿名内部类,是因为它除了是个内部类外,它还没有名字。所以你又怎么可以访问的匿名类里面定义的东西呢?
第3个回答  2013-05-16
设置get,set方法,javabean的模式。追问

试过 ,拿到的是NULL

第4个回答  2013-05-17
我今天也碰到过这个问题,处理事件的时候,去实现接口,就可以了追问

你指的是重新写一个类,然后实现那个接口将事件的方法全放在这个类里面是吗,这样是可以获得参数,但是我有用线程,会报java.lang.StackOverflowError,是线程原因 还是我代码的问题

第5个回答  2013-05-16
package com.test.lianxi.w16;
public class A {
public String Astr;
A(){
C c = new C();
this.Astr = c.Cstr;
}
class C{
public String Cstr;
C(){
Cstr="123";
}
}
}
package com.test.lianxi.w16;
public class B {
public static void main(String[] args) {
A a = new A();
System.out.println(a.Astr);
}
}

这样就可以调得到了。。程序我调试过了,可以运行。GUI的也是同理。追问

我没看到你的内部类啊,你这个就是将C类放在A类中初始化一下

追答

亲,这不是吗?只是没写成匿名内部类而已

追问

额,刚刚看错了还以为C上面的括号是A类的结束呢,不过这跟匿名有点区别吧 ,你这能NEW对象匿名呢