Como passar um parametro do tipo array?

Boa noite pessoal, estou eu novamente solicitando a ajuda de vós “miceis”. Ja tentei de várias formas passar a minha instancia empregados para o método adicionaFuncionario() {}
mas sempre ocorre um erro. O que estou fazendo de errado novamente ??

[code]public class Funcionario {
String nome;
String RG;
Data dataEntrada;
double salario;
boolean estaNaEmpresa;

}[/code]

[code]public class Empresa {
String cnpj;
String nome;
Funcionario[] empregados;
int i = 0;

// Método adiciona funcionário no array
void adicionaFuncionario(Funcionario f) {
	if(i <= empregados.length) {
		this.empregados[i] = f;
		i++;
	}
}

}[/code]

[code]public class TestaEmpresa {

public static void main(String[] args) {
	
	Empresa empresa1 = new Empresa();
	empresa1.empregados = new Funcionario[5];
	
	empresa1.adicionaFuncionario(empresa1.empregados); // Erro neste método.
}

}[/code]

Você quer adicionar 1 funcionário ou um monte de funcionários? E que adicionaFuncionario adiciona apenas 1 funcionário (porque recebe um objeto da classe Funcionario, não um array de Funcionario).
Note que o Java não é esperto suficiente para chamar o adicionarFuncionario para cada elemento do array de funcionários; você é que tem de criar um “for” e adicionar um por um .

Olha cara, é mais facil tu usar um Vector de funcionarios, a não ser que você tenha somente um numero x de funcionarios, e como o amigo falou ai, tu não precisa passar como parametro um array de funcionarios, para inserir tu deve passar como paremetro um funcionario
exemplo com array:

public void insere(Funcionario f){
empregados[i] = f;
i++;
}

exemplo com Vector

public void insert(Funcionario f){
empregados.add(f);
}

Para passar um array como parametro tu vai fazer:

teuArray = arrayParametro;

É o problema ta do loop mesmo, ta bem estranho a lógica da coisa.

Faça um List de Funcionario…

[code]List funcionarios = new ArrayList();

// pra adicionar:
void addFuncionario(Funcionario funcionario){
// verifica se a lista foi instanciada ja
if (funcionarios == null) funcionarios = new ArrayList();
// adiciona o funcionario
empregados.add(funcionario);
}[/code]

O problema do array é que voce ainda precisa passar o tamanho dele, não há como inserir dinamicamente, por isso usamos List, que trata isso pra gente… sacou?

tas passando um array de funcionarios para o metodo mais ele quer só um funcionario…
Ja seta o tamanho da tua array de funcionarios.

[code]
String cnpj;
String nome;
Funcionario[] empregados = new Funcionario[5];
int i = 0;

	// Método adiciona funcionário no array
	void adicionaFuncionario(Funcionario f) {
		if(i <= empregados.length) {
			this.empregados[i] = f;
			i++;
		}
	}[/code]

o metod main

		public static void main(String[] args) {
			
			Empresa empresa1 = new Empresa();
			Funcionario f1 = new Funcionario();
			Funcionario f2 = new Funcionario();
			f1.nome="rat000";
			f2.nome="guj";
			empresa1.adicionaFuncionario(f1); // Assim não da mais erro, do jeito que vc fez.
			empresa1.adicionaFuncionario(f2);
			for(int i = 0; i < 2; i++){
				System.out.println(empresa1.empregados[i].nome);
			}
			
		}

Testei aqui assim funcionou

se você ja sabe o numero exato, usa uma array, mas mesmo assim, é melhor usar ArrayList, List ou Vector,