|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 476
|
[JAVA] Error: Array required, but ... found
Buonasera a tutti.
Ho un problema con il compilatore di Java che mi segnala un errore che non riesco ad interpretare. Il programma che sto scrivendo consta di due file sorgente .java. Il primo è MainClass.java ed è contenuto nella cartella "esercizio": Codice:
package esercizio;
import java.io.*;
import java.util.Scanner;
public class MainClass
{
public static void main(String[] argv)
{
// Chiede all'utente le dimensioni
Scanner sc1 = new Scanner(System.in);
System.out.print("Inserire la lunghezza: ");
int x = sc1.nextInt();
System.out.print("Inserire la larghezza: ");
int y = sc1.nextInt();
System.out.println("Parallelepipedo di dimensioni: " + x + " X " + y + " X 5");
Parallelepipedo par1 = new Parallelepipedo(x,y);
int a = 2;
int b = 5;
par1[a][b][1] = "prova";
}
}
Codice:
package esercizio;
public class Parallelepipedo
{
private int lunghezza;
private int larghezza;
public Parallelepipedo(int a,int b)
{
lunghezza = a;
larghezza = b;
String[][][] griglia = new String[a][b][5];
}
}
Codice:
MainClass.java:22: error: array required, but Parallelepipedo found
par1[a][b][1] = "prova";
^
1 error
Ciao e grazie. Ultima modifica di Bestseller : 21-02-2012 alle 08:55. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2009
Città: Milano
Messaggi: 270
|
Per quello che hai scritto tu par1 è una variabile oggetto di tipo Parallelepipedo non un array quindi perchè dovresti usare l'operatore []?.
__________________
AMD PII x4 955 BE | Sapphire HD4850 Vapor-X 1 GB | Samsung SpinPoint F1 500GB | Samsung EcoGreen F4 2TB Gigabyte GA-MA790FXT-UD5P | Fractal Design Define R3 USB3.0 Titanium Grey | CORSAIR 650W CMPSU-650TX Noctua U12P SE2 | 2 x 2GB Kingston 1333 MHz | Samsung SyncMaster P2450 | Samsung SyncMaster T200 Ultima modifica di __ZERO_UNO__ : 20-02-2012 alle 21:19. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 476
|
Scusami, il codice sorgente era leggermente diverso; ora l'ho corretto quindi ti chiedo se per favore puoi rileggerlo. Scusa ancora.
Ah, quindi non devo usare l'operatore []? Quello che volevo fare scrivendo: Codice:
par1[a][b][1] = "prova"; Quindi come dovrei fare per riempire l'array? Devo creare un metodo apposito in Parallelepipedo.java? Grazie ancora e buona giornata. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
1) aggiungi in Parallelepipedo un campo di istanza "griglia";
2) aggiungi in Parallelepipedo un metodo per modificare il contenuto di "griglia"; 3) nel costruttore di Parallelepipedo modifica la attuale dichiarazione di "griglia" in una inizializzazione del campo omonimo 4) in MainClass accedi e modifica la "griglia" di una istanza di Parallelepipedo tramite l'apposito metodo di istanza al punto 2. Ora come ora il codice è sbagliato perchè: 1) nel costruttore di Parallelepipedo dichiari una variabile locale al metodo (String[][][] griglia = new String[a][b][5]) che quindi al termine del costruttore non esiste più. 2) hai applicato l'operatore [] ad un tipo che non è un array (par1 è di tipo Parallelepipedo).
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 21-02-2012 alle 13:00. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:06.



















