Múltiplos objetos em java

Estou implementando este exemplo

http://datakrup.com/2010/01/27/creating-multiple-object/

Por enquanto está assim, e está dando os erros abaixo.

Alguma ideia? obrigado

//Human.java
package multiplosobjetos;

public class Human {
	private String name;
	
	public Human(){
		name="";
	}
	
	public Human(String name)
	{
		
	}
	
	public String getName()
	{
		return this.name;
	}
	
	public void setName(String name)
	{
		this.name=name;
	}
}
//Woman.java
package multiplosobjetos;

import java.awt.List;
import java.util.ArrayList;

public class Woman extends Human {
	public void TestaHumanos() {
		List<Woman> women = new ArrayList<Woman>();
		List<Man> men = new ArrayList<Man>();
		
		
		for(int i = 0; i < 100; i++)
		{
			womans.add(new Woman());
			men.add(new Man());
		}
	}
}
//Man.java
package multiplosobjetos;

public class Man extends Human {

}
//Erros

Description	Resource	Path	Location	Type
The type List is not generic; it cannot be parameterized with arguments <Man>	Woman.java	/LabJavaSE16/src/multiplosobjetos	line 10	Java Problem
The type List is not generic; it cannot be parameterized with arguments <Woman>	Woman.java	/LabJavaSE16/src/multiplosobjetos	line 9	Java Problem
womans cannot be resolved	Woman.java	/LabJavaSE16/src/multiplosobjetos	line 15	Java Problem
import java.awt.List;

você não deve utilizar esta lista, mas esta

import java.util.List;

Outra coisa, isso aqui roda?

//...
            womans.add(new Woman());  //Aqui é women, senão nem compila.
//...

[quote=fasts]Outra coisa, isso aqui roda?

//... womans.add(new Woman()); //Aqui é women, senão nem compila. //... [/quote]
Se a a lista womans for do tipo java.util.List, sim.
A questão é que, ao criar um novo objeto Woman, você terá todos os atributos de woman nulos…

Eu sei, mas ali no código “womans” não está declarado. Não vai nem compilar.
Ele declarou como “women” e “men”. Não existe “womans” no código.

[quote=fasts]Eu sei, mas ali no código “womans” não está declarado. Não vai nem compilar.
Ele declarou como “women” e “men”. Não existe “womans” no código.[/quote]
Nem me liguei nisso

Obrigado!
É verdade, estava com problema no import, que agora foi mudado para

import java.util.List;

Mas ao continuar o exemplo, está dando novos erros que não consegui resolver. Alguém?

//Woman.java
package multiplosobjetos;

public class Woman extends Human {
	
//Woman.java
package multiplosobjetos;

public class Woman extends Human {
	
}
package multiplosobjetos;

import java.util.ArrayList;
import java.util.List;


public class TestaHumanos {
	public static void main(String argsv[]) {
		List<Woman> women = new ArrayList<Woman>();
		List<Man> men = new ArrayList<Man>();
		
		
		for(int i = 0; i < 100; i++)
		{
			women.add(new Woman());
			men.add(new Man());
		}
	}

	public static List<Human> getInstances(Class<? extends Human> clazz, int counter)
	{
		List humans = new ArrayList<Human>();
		
		for(int i=0;i< counter; i++)
		{
			
			humans.add(clazz.newInstance());
		
		}
		
		return humans;
	}
}
//Man.java
package multiplosobjetos;

public class Man extends Human {

}
//erros

Description	Resource	Path	Location	Type
Unhandled exception type IllegalAccessException	TestaHumanos.java	/LabJavaSE16/src/multiplosobjetos	line 27	Java Problem
Unhandled exception type InstantiationException	TestaHumanos.java	/LabJavaSE16/src/multiplosobjetos	line 27	Java Problem
List is a raw type. References to generic type List<E> should be parameterized	TestaHumanos.java	/LabJavaSE16/src/multiplosobjetos	line 22	Java Problem
Type safety: The expression of type List needs unchecked conversion to conform to List<Human>	TestaHumanos.java	/LabJavaSE16/src/multiplosobjetos	line 31	Java Problem
Type safety: The method add(Object) belongs to the raw type List. References to generic type List<E> should be parameterized	TestaHumanos.java	/LabJavaSE16/src/multiplosobjetos	line 27	Java Problem

Você criou um List sem definir o tipo de objeto que essa list irá carregar. Por outro lado, inferiu isso ao ArrayList

List humans = new ArrayList<Human>();

Obrigado novamente. Agora deu um erro de execução. Seguem classes atualizadas e erro.

//Human.java
package multiplosobjetos;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;

public class Human {
	private String name;
	private int idHumano;
	
	public Human(){
		name="";
	}
	
	public Human(String name)
	{
		this.name = name;
		idHumano = 0;
	}
	
	public Human(Integer idHumano)
	{
		name="";
		this.idHumano = idHumano;
	}
	
	public String getName()
	{
		return this.name;
	}
	
	public void setName(String name)
	{
		this.name=name;
	}

	public int getidHumano() {
		return idHumano;
	}

	public void setContador(int idHumano) {
		this.idHumano = idHumano;
	}
	
	public static List<Human> gerarHumanos(Class<? extends Human> clazz, int counter)
	{
		List<Human> humans = new ArrayList<Human>();
		int i=0;

		//Usando construtor padrao
		for(i=0;i< counter && i < 1; i++)
		{
			
			try {
				humans.add(clazz.newInstance());
			} catch (InstantiationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		}
		
		//Usando construtor que inicia idHumano
		for(;i< counter; i++)
		{
				try {
					humans.add(clazz.getDeclaredConstructor(Integer.class).newInstance(i));
				} catch (IllegalArgumentException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (SecurityException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (InstantiationException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (InvocationTargetException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (NoSuchMethodException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		
		}
		
		return humans;
	}

}
//Man.java
package multiplosobjetos;

public class Man extends Human {

}
package multiplosobjetos;

import java.util.ArrayList;
import java.util.List;


public class TestaHumanos {
	public static void main(String argsv[]) {
		
		//Modo antigo
//		List<Woman> women = new ArrayList<Woman>();
//		List<Man> men = new ArrayList<Man>();
//		
//		
//		for(int i = 0; i < 100; i++)
//		{
//			women.add(new Woman());
//			men.add(new Man());
//		}

		//Modo usando gerador de Humanos
		List<Human> man = Human.gerarHumanos(Man.class,10);
		List<Human> woman = Human.gerarHumanos(Woman.class,10);

	}


}
//Woman.java
package multiplosobjetos;

public class Woman extends Human {
	
}
Erro em tempo de execução

java.lang.NoSuchMethodException: multiplosobjetos.Man.<init>(java.lang.Integer)
	at java.lang.Class.getConstructor0(Unknown Source)
	at java.lang.Class.getDeclaredConstructor(Unknown Source)
	at multiplosobjetos.Human.gerarHumanos(Human.java:71)
	at multiplosobjetos.TestaHumanos.main(TestaHumanos.java:21)