2016-07-26 4 views
0

ネストされたクラスで動作しませんOuterクラスもちろんしかし、私はOuter内のすべてのフィールドを知っているとPircbotクラスはInnerクラスに継承されている):。Javaメソッドは、私はこのような1つの内部クラスと1つの外部クラスを持っている

@Override 
public void messageReceived(SessionEvent event) { //This method is inside SessionAdapter class which I am extending in my Inner class 
Outer.this.sendMessage(event.getMessage()); //This method is inside Pircbot class which I am extending in my Outer class 
} 

私は、sendMessage(..)メソッドが呼び出されたという事実を知っています。しかし何らかの理由で私はTwitch chat(このプログラムはTwitch Chatにチャットメッセージを送信します。それらのチャットメッセージは私が入力したときにYahoo Chat Messengerから電話から受信します)。誰が私のコードで何が間違っているのを見ることができますか?

+0

sendMessageが呼び出されたことが分かっている場合は、おそらくあなたが投稿しなかったsendMessageメソッドに問題がある可能性があります。それは助けが難しい。 – Mark

+0

さて、私はこれを読んで、私の心配する限りこれを閉じることができますが、私はこの質問を好きな人ではないと言わなければならないので、誰かがこれに対する答えを見つけようとしているかもしれません。しかし、考慮に感謝します。 – Mark

+0

答えを見つけたら、答えを回答ブロックに追加してください。タイトルを[解決済み]で取り締まらないでください。質問に回答を追加しないでください。ここでは、SE APIで提供されるデータの改善だけでなく、ここで明確に説明することをお勧めします。編集しますか?ありがとう! – halfer

答えて

1

これは私がやったことです。内部クラスのインスタンス化の位置を変更しました(デフォルトの外部コンストラクタの内部からインスタンス変数へ)。このように:

public class Outer extends PircBot { 
private int x; 
public Outer(){ 
x = 5; 
Inner n = new Inner(); //Instantiation inside Outer class's default constructor 
} 
public class Inner extends SessionAdapter { 
...  
} 
} 

から

public class Outer extends PircBot { 
private int x; 
Inner n = new Inner(); //Now instantiation is outside constructor 
public Outer(){ 
x = 5; 
//no more instantiation inside constructor 
} 
public class Inner extends SessionAdapter { 
...  
} 
} 

また、単収縮の事であったかもしれません。チャネル名の大文字小文字は機能しないことがあります。それはある種の方法で文字を大文字にする必要があります。だから私は文字列の文字の大文字を変えました。

関連する問題