Por que ta acontecendo isso?

boa tarde o compilador me da um erro que eu nao sei o pq ??



package cap08;

import java.io.ObjectInputStream.GetField;

import javax.swing.JOptionPane;

public class Quadrado  extends Quadrilatero{

	public Quadrado(int l1, int l2, int l3, int l4) {
		super(l1, l2, l3, l4);
	}


	/**
	 * @param args
	 */
	public static void main(String[] args) {

		int [] lados=new int [4];
try{
		for(int i=0; lados.length; i++){

			lados[i]= Integer.parseInt(JOptionPane.showInputDialog("Digite o lado "+(i+1)+"do quadrado"));

			if(lados[i]==lados[i+1]){

				throw new IllegalArgumentException("o quadrado tem 4 lados iguais ");
			}
		}
	}catch (Throwable t) {
		// TODO: handle exception
		System.out.println("erro:"+t.getMessage());
		t.printStackTrace();
		
	}
System.out.println("finalizado");
	}

}

o erro q acusa e o seguinte:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Type mismatch: cannot convert from int to boolean

	at cap08.Quadrado.main(Quadrado.java:21)

so q de onde esta vindo o boolean ?? nao criei nenhum boolean e o tipo de retorno do lenght e int?? pq ta dando isso???

[quote=TASF]boa tarde o compilador me da um erro que eu nao sei o pq ??



package cap08;

import java.io.ObjectInputStream.GetField;

import javax.swing.JOptionPane;

public class Quadrado  extends Quadrilatero{

	public Quadrado(int l1, int l2, int l3, int l4) {
		super(l1, l2, l3, l4);
	}


	/**
	 * @param args
	 */
	public static void main(String[] args) {

		int [] lados=new int [4];
try{
		for(int i=0; lados.length; i++){

			lados[i]= Integer.parseInt(JOptionPane.showInputDialog("Digite o lado "+(i+1)+"do quadrado"));

			if(lados[i]==lados[i+1]){

				throw new IllegalArgumentException("o quadrado tem 4 lados iguais ");
			}
		}
	}catch (Throwable t) {
		// TODO: handle exception
		System.out.println("erro:"+t.getMessage());
		t.printStackTrace();
		
	}
System.out.println("finalizado");
	}

}

o erro q acusa e o seguinte:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Type mismatch: cannot convert from int to boolean

	at cap08.Quadrado.main(Quadrado.java:21)

so q de onde esta vindo o boolean ?? nao criei nenhum boolean e o tipo de retorno do lenght e int?? pq ta dando isso???[/quote]

veja essa linha: Type mismatch: cannot convert from int to boolean

O erro é nitido, vc esta tentando converter um tipo Integer(int) para um tipo Boolean(boolean)

t+ e boa sorte.

Faça isso:

package cap08;

import java.io.ObjectInputStream.GetField;

import javax.swing.JOptionPane;

public class Quadrado  extends Quadrilatero{

	public Quadrado(int l1, int l2, int l3, int l4) {
		super(l1, l2, l3, l4);
	}


	/**
	 * @param args
	 */
	public static void main(String[] args) {

		int [] lados=new int [4];
try{
		for(int i=0; i < lados.length(); i++){ // Você tinha esquecido de fazer a condição de parada do laço, i < lados.lenght()

			lados[i]= Integer.parseInt(JOptionPane.showInputDialog("Digite o lado "+(i+1)+"do quadrado"));

			if(lados[i]==lados[i+1]){

				throw new IllegalArgumentException("o quadrado tem 4 lados iguais ");
			}
		}
	}catch (Throwable t) {
		// TODO: handle exception
		System.out.println("erro:"+t.getMessage());
		t.printStackTrace();
		
	}
System.out.println("finalizado");
	}

}

Eh como disse o matheuslmota,
o problema esta no seu for, voce esta não esta especificando quando parar o loop, ou seja voce montou o for de maneira errada.
O correto seria,

for(int i=0; i < lados.length; i++){  
  ...
}

Enquanto i for menor que lados.length ele ira executar o for.
t+