[Risolto][java]instanceof e sottotipi

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
jigen45
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 717
Iscrizione: lunedì 31 dicembre 2012, 18:59
Desktop: ubuntu

[Risolto][java]instanceof e sottotipi

Messaggio da jigen45 »

Salve ragazzi, un piccolo dubbio: se dichiaro un'interfaccia A e una classe B che la implementa, in un metodo che fa dei controlli su una matrice m di tipo A, è legale l'epressione

Codice: Seleziona tutto

if (m[i][j] instanceof B)
    return m[i][j]
?

Perché eclipse mi da' il seguente errore:

Codice: Seleziona tutto

Type mismatch: cannot convert from A to B
Ultima modifica di jigen45 il mercoledì 3 dicembre 2014, 19:26, modificato 2 volte in totale.
jigen45
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 717
Iscrizione: lunedì 31 dicembre 2012, 18:59
Desktop: ubuntu

Re: [java]instanceof e sottotipi

Messaggio da jigen45 »

Il metodo dovrebbe ritornare un oggetto di tipo B, ed i e j sono contatori (assumendo che la matrice sia bidimensionale)
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: [java]instanceof e sottotipi

Messaggio da SuperStep »

guarda ho fatto una prova:

Codice: Seleziona tutto

public class Class implements Interface{

}

Codice: Seleziona tutto

public interface Interface {

}

Codice: Seleziona tutto

public class Main {
	public static void main(String[] args) {
		Class[][] my = new Class[10][10];
		for(int i=0; i<10; i++)
			for(int j=0; j<10; j++)
				my[i][j] = new Class();
		
		System.out.println((my[1][4] instanceof Interface) ? true : false);
	}

}
l'output mandato in eseguizone di Main da true. quindi credo che l'elemento m[j] non sia di tipo B
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
jigen45
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 717
Iscrizione: lunedì 31 dicembre 2012, 18:59
Desktop: ubuntu

Re: [java]instanceof e sottotipi

Messaggio da jigen45 »

sì perché effettivamente il controllo viene fatto sul tipo statico, l'interfaccia in questo caso
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 19 ospiti