[RESOLVIDO] <identifier> expected na classe

6 respostas Resolvido
F

Ola , estou aprendendo java recentemente e preciso desenvolver um programa para calcular distancia entre vertices.

class Destino {
	int indiceProxVertice;
	int distancia;
	
	Destino (int v, int d) {
		indiceProxVertice = v;
		distancia = d;
	}
}
class Vertice {
	Destino destinos [];
	
	Vertice(Destino d){
		destinos = new Destino[1];
		destinos[0] = d;
	} 
	
	Vertice (Destino d0, Destino d1) {
		destinos = new Destino[2];
		destinos[0]  = d0;
		destinos [1] = d1;
	}

	Vertice vertices [] = new Vertice[15];
	
	vertices [] = {
		new Vertice(new Destino( 1, 54), new Destino( 3, 75)),
		new Vertice(new Destino( 2, 80), new Destino( 4, 163)),
		new Vertice(new Destino( 7, 136)),
		new Vertice(new Destino( 5, 25), new Destino( 4, 154)),
		new Vertice(new Destino( 7, 66)),
		new Vertice(new Destino( 6, 122), new Destino( 8, 106)),
		new Vertice(new Destino( 7, 84), new Destino( 4, 62)),
		new Vertice(new Destino(10, 92), new Destino(11, 132)),
		new Vertice(new Destino( 6, 23), new Destino( 9, 52)),
		new Vertice(new Destino(10, 84), new Destino( 7, 66)),
		new Vertice(new Destino(11, 65), new Destino(13, 95)),
		new Vertice(new Destino(12, 62), new Destino(13, 11)),
		new Vertice(new Destino(15, 97)),
		new Vertice(new Destino(14, 74), new Destino(12, 36)),
		new Vertice(new Destino(15, 47)) 
	};
}

Mas meu codigo não compila, com erro de expected na linha de declaração do vetor “vertices”. Alguem pode ajudar ?

6 Respostas

darlan_machado

Posta a mensagem de erro inteira e referencie a linha em que ela ocorre

F

arquivo.java 27: error: < identifier> expected
vertices [] = {
________^

Lucas_Camara

Essa parte:

vertices [] = {
	new Vertice(new Destino( 1, 54), new Destino( 3, 75)),
	new Vertice(new Destino( 2, 80), new Destino( 4, 163)),
	new Vertice(new Destino( 7, 136)),
	new Vertice(new Destino( 5, 25), new Destino( 4, 154)),
	new Vertice(new Destino( 7, 66)),
	new Vertice(new Destino( 6, 122), new Destino( 8, 106)),
	new Vertice(new Destino( 7, 84), new Destino( 4, 62)),
	new Vertice(new Destino(10, 92), new Destino(11, 132)),
	new Vertice(new Destino( 6, 23), new Destino( 9, 52)),
	new Vertice(new Destino(10, 84), new Destino( 7, 66)),
	new Vertice(new Destino(11, 65), new Destino(13, 95)),
	new Vertice(new Destino(12, 62), new Destino(13, 11)),
	new Vertice(new Destino(15, 97)),
	new Vertice(new Destino(14, 74), new Destino(12, 36)),
	new Vertice(new Destino(15, 47)) 
};

Tem que estar dentro de algum método para funcionar

staroski
Solucao aceita

Ou pode inicializar na declaração:

Vertice vertices [] = new Vertice[]  {
		new Vertice(new Destino( 1, 54), new Destino( 3, 75)),
		new Vertice(new Destino( 2, 80), new Destino( 4, 163)),
		new Vertice(new Destino( 7, 136)),
		new Vertice(new Destino( 5, 25), new Destino( 4, 154)),
		new Vertice(new Destino( 7, 66)),
		new Vertice(new Destino( 6, 122), new Destino( 8, 106)),
		new Vertice(new Destino( 7, 84), new Destino( 4, 62)),
		new Vertice(new Destino(10, 92), new Destino(11, 132)),
		new Vertice(new Destino( 6, 23), new Destino( 9, 52)),
		new Vertice(new Destino(10, 84), new Destino( 7, 66)),
		new Vertice(new Destino(11, 65), new Destino(13, 95)),
		new Vertice(new Destino(12, 62), new Destino(13, 11)),
		new Vertice(new Destino(15, 97)),
		new Vertice(new Destino(14, 74), new Destino(12, 36)),
		new Vertice(new Destino(15, 47)) 
	};
darlan_machado

Em suma, você instanciar vetores de duas maneiras, no java:

int vetor[] = new int[10];

Ou

int vetor1[] = {1, 2, 3, 4, 5};

Você não pode fazer isso:

int vet[];
vet = {1, 2, 3};//Illegal start of expression

image

Que é o que provavelmente ocorreu no teu caso.

F

Declarei de outar foma e deu certo aqui Valew´s :smiley:

Criado 17 de março de 2018
Ultima resposta 17 de mar. de 2018
Respostas 6
Participantes 4