Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  Main.java

  Sprache: JAVA
 

/*
 * Copyright (C) 2015 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


public class Main {
  public static void main(String[] args) {
    System.loadLibrary(args[0]);
    testRegistration1();
    testRegistration2();
    testRegistration3();
  }

  // Test that a subclass' method is registered instead of a superclass' method.
  private static void testRegistration1() {
    registerNatives(TestSub.class);

    expectNotThrows(new TestSub());
    expectThrows(new TestSuper());
  }

  // Test that a superclass' method is registered if the subclass doesn't have a matching method.
  private static void testRegistration2() {
    registerNatives(TestSub2.class);

    expectNotThrows(new TestSub2());
    expectNotThrows(new TestSuper2());
  }

  // Test that registration fails if the subclass has a matching non-native method.
  private static void testRegistration3() {
    try {
      registerNatives(TestSub3.class);
      System.out.println("Expected exception for registerNatives(TestSub3.class)");
    } catch (NoSuchMethodError ignored) {
    }
  }

  private native static int registerNatives(Class<?> c);

  private static void expectThrows(Base b) {
    try {
      b.callMyFoo();
      System.out.println("Expected exception for " + b.getClass().getName());
    } catch (Throwable ignored) {
    }
  }

  private static void expectNotThrows(Base b) {
    try {
      b.callMyFoo();
    } catch (Throwable t) {
      System.out.println("Did not expect an exception for " + b.getClass().getName());
      t.printStackTrace(System.out);
    }
  }
}

abstract class Base {
  public abstract void callMyFoo();
}

class TestSuper extends Base {
  private native void foo();

  @Override
  public void callMyFoo() {
    foo();
  }
}

class TestSub extends TestSuper {
  public native void foo();

  @Override
  public void callMyFoo() {
    foo();
  }
}

class TestSuper2 extends Base{
  public native void foo();

  @Override
  public void callMyFoo() {
    foo();
  }
}

class TestSub2 extends TestSuper2 {
}

class TestSuper3 extends Base {
  public native void foo();

  @Override
  public void callMyFoo() {
    foo();
  }
}

class TestSub3 extends TestSuper3 {
  public void foo() {
    System.out.println("TestSub3.foo()");
  }
}

Messung V0.5 in Prozent
C=96 H=100 G=97

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-07-11) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik