web-dev-qa-db-fra.com

Comment remplacer la méthode lors de l'instanciation d'un objet dans Kotlin?

En Java, pour remplacer la méthode lors de l'instanciation d'un nouvel objet, nous pouvons le faire

public ActivityTestRule<MainActivity> rule = new ActivityTestRule<MainActivity>(
            MainActivity.class) {
        @Override
        protected void beforeActivityLaunched() {
            // implement code
            super.beforeActivityLaunched();
        }
    };

Comment faire ça à Kotlin? J'ai essayé ce code mais il n'a pas pu être compilé.

@Rule @JvmField
var rule = ActivityTestRule<MainActivity>(MainActivity::class.Java) {
    override fun beforeActivityLaunched() {
        super.beforeActivityLaunched()
    }
} 
19
aldok

Si vous souhaitez créer une classe interne anonyme, vous devez utiliser object.

var rule = object : ActivityTestRule<MainActivity>(MainActivity::class.Java) {
    override fun beforeActivityLaunched() {
        super.beforeActivityLaunched()
    }
}

Voir aussi Expressions et déclarations d'objets .

41
uramonk