私はを学びますを作成する方法interface
を作成します。私は別の記事を読んで、いくつかの基本的な概念が欠けているようです。.javaのインターフェイスでエラーが発生する
何かをやったときに、終了したリスニングクラスに通知するクラスを作成したいと思います。たとえば、MainActivity
にMySingletonClass
のバージョンをインスタンス化したいとします。 MySingletonClass
はMainActivity
から何かを持っているし、終了したときに、は
にMainActivity
でをオーバーライドしかし、私は私のインターフェイスを作成するとき、私はエラーを取得されていsomeMethod
呼び出す:
Class is public, should be declared in a file named filename.java
ここでは、上のエラーです画面:
ここでは私のコードです:
package com.mycompany.myapplication;
public interface MySingletonInterface {
void someMethod();
}
public class MySingletonClass {
private static MySingletonClass ourInstance = new MySingletonClass();
private MySingletonInterface msi;
public static MySingletonClass getInstance() {
return ourInstance;
}
private MySingletonClass() {
}
public void doSomething(){
msi.someMethod();
}
}
は、これは私がそれをやるべきな方法ですか?いくつかのベストプラクティスがありますか?再び私はjava/androidを学んでいます。
私はiOSの背景から来ています.iOSでは、デリゲートパターンと呼ばれるものがあります。これは、クラスが何かをやったことを別のクラスに通知する方法です。 Javaのようなものがありますか?
エラーメッセージは非常に明確です。 'MySingletonInterface'は' MySingletonInterface.java'と 'MySingletonClass.java'の' MySingletonClass'になければなりません。 – Eran
「public」という単語を削除するか、インターフェイスとクラスを適切に名前のついたファイルに分けて移動してください。 – khelwood
'MySingletonInterface'はそれ自身のファイルでなければなりません。 'MySingletonClass'によってのみ使用される場合は、本当にprivateとマークする必要があります。 – ChrisStillwell