Domanda

Come faccio a fare in avanti dichiarazioni in Java?

Ho due classi, ciascuna deve chiamare un metodo all'altro ed entrambi risiedere all'interno namespace diversi. Per esempio ...

package one;

class A {
    public void foo() {
        B b = new B();
        b.bah();
    }
}

e

package two;

class B {
    public void bah() {
        A a = new A();
        a.foo();
    }
}

UPDATE

In Eclipse quando si incontra questo codice di un errore di tempo di compilazione sarebbe stato gettato in "Un ciclo è stato rilevato nel percorso di generazione ...".

È stato utile?

Soluzione

Basta importare. Java è molto più intelligente di C ++ di queste cose.

Altri suggerimenti

  

In Eclipse quando si incontra questo codice di un errore di tempo di compilazione sarebbe stato gettato in "Un ciclo è stato rilevato nel percorso di generazione ...".

Credo che Eclipse si lamenta perché si ha una dipendenza circolare tra le classi in diversi progetti Eclipse nell'area di lavoro. Eclipse vuole essere in grado di costruire progetti in una sequenza lineare.

Se si mettono le classi reciprocamente dipendenti nello stesso progetto, Eclipse sarebbe felice.

Bene, si importano le classi:

package one;

import two.B;

class A {
    public void foo() {
        new B().bah();
    }
}

o utilizzare il loro nome completo:

package one;

class A {
    public void foo() {
        new two.B().bah();
    }
}

Ma, inutile dirlo, che causerà un'eccezione per essere gettato (almeno, nel frammento che hai postato ...).

Dati i commenti qui (vale a dire che non è necessario fare dichiarazioni previsionali esplicite come il compilatore può far fronte) ho declassato l'errore Eclipse per un avviso e dovrà ignorare proprio questo.

Per fare questo andare a ...

Finestra> Preferenze> Java> Compiler> Costruzione> Crea problemi di percorso> dipendenze circolari

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top