作者LaPass (LaPass)
看板java
标题Re: [问题] 能否在回圈里面呼叫 anonymous class 的 method?
时间Tue Jul 24 15:53:00 2012
推文的时间太久了....
直接回
你把那一段改成这样就好了
class Cat{
public void miew(){
//do something
}
}
Cat cat=new Cat();
for(;;){
cat.miew();
}
※ 引述《GALINE (天真可爱CQD)》之铭言:
: 如果我今天有个 anonymous class,我可以在宣告时直接呼叫他
: 的 method。像是:
: new Object (){
: public void miew(){
: Object cat //do something
: }
: }.miew();
: 这样的 code 是 OK 的。
: 可是如果我想在回圈里面使用这个 method 似乎就没办法
: Object cat = new Object (){
: public void miew(){
: //do something
: }
: };
: for(;;){
: cat.miew(); //这行会死掉
: }
没有回圈一样会挂掉,这跟回圈一点关系也没有。
另外,
new Object (){
public void miew(){
//do something
}
};
这段的方法的意思是,你复写一个Object,并加上miew方法
在指定给Object之前....
也就是
Object cat = ......
之前,他被视为一个,继承自Object却不是Object的物件
所以後面接.miew();可以叫用.miew();方法
但是在指派给Object cat之後,那个物件实体就被当成Object
又由於Object底下没有miew()方法,所以编译的时候就会回报错误
: 我有点好奇,有可能不透过 reflection 的方式,在回圈里面呼叫到
: 这个 anonymous class 的 miew() 吗?
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.16.65