2016-09-17 2 views
1

私はAndroid Studioでアプリケーションをコーディングしていますが、コンパイラは自分のシングルトンメソッドを解決できないと伝えます。私はenumを使用してpre-J2SE 6シングルトン実装とpos-J2SE 6実装の両方を試してみましたが、どちらの場合も問題が発生します。ここでコンパイラがシングルトンの方法を解決できないと伝えます

は、私は(これは単純な例である彼はより多くの方法などを持っている以外、私は私の シングルトンで同じことをやっている)をコードしています方法です:

public class Singleton { 

    private static final Singleton instance = new Singleton(); 
    private boolean aaa; 

    private Singleton() {} 

    public static Singleton getInstance() { 
     return instance; 
    } 

    public void bbb(){} 

} 

OR

public enum Singleton{ 

    INSTANCE { 

     private boolean aaa;  

     public void bbb(){} 

    } 

} 

そして、同じパッケージ内の別のクラスで私がコーディングしていますが

public class MapHandler implements OnMapClickListener 
    Singleton abc = Singleton.getInstance(); 

    abc.bbb(); 
    // rest of code 
} 

コンパイラを伝える私は、rできませんエボリューション記号bbb()

私は間違っていますか?私はこれを求めるのは単純な作業で、他の人も同じようにこれを行うが、私はこの特定のケースについてウェブ上で検索したが、これについての答えは見つからなかった=

+0

Android Studioのデフォルトコンパイラjavacは正しいですか?私はジャックを使っていると思った? –

+0

以下のコメントの画像から少しのコードを追加しました。あなたが直面しているすべての問題に対処することが不可欠です。 – ChiefTwoPencils

答えて

2

それをコーディングする必要があります。

public enum Singleton { 
    INSTANCE; 

    private boolean aaa;  
    public void bbb(){} 
} 

public class Test { 
    public static void main(String[] args) { 
     Singleton abc = Singleton.INSTANCE; 
     abc.bbb(); 
    } 
} 

bbbメソッドがインスタンス内enumないローカルメソッドのメソッドとして宣言する必要があること。

あなたは、このようなクラスのボディを持つ列挙型定数を宣言:あなたは暗黙的にenumクラスを拡張する匿名の内部クラスを宣言している

public enum Singleton { 
    INSTANCE { 
     private boolean aaa;  
     public void bbb(){} 
    }; 
} 

を。クラス本体内のものは、enumではなく、匿名の内部クラスの一部です。これは、bbbメソッドがenumに対して宣言されておらず、リフレクションを使用して呼び出さない限り、効果的にアクセスできないことを意味します。

(これは、親タイプ階層のメソッドには対応しない匿名クラスのパブリックメソッドを宣言することと同じですが、そこにはJavaコードで名前を付けることはできません)

+0

問題は解決されていない、私はここにいくつかの写真があります:http://imgur.com/a/CuwhR(これはシングルトンを使用するクラスです)とhttp://imgur.com/a/XwbTQ (これはシングルトンです)= S –

+0

私はそれらの画像を読むことができません。あなたのコードとエラーメッセージを質問に>> TEXT <<と入れてください。 –

+0

ハムはあなたが言ったことと何も変わりありません、私はあなたが言ったことを正確にしました、私はちょうどコンパイラがそれを解決できないと言っても、 logcatのシンボルを解決することができません)= S –

関連する問題