Ciao a tutti, da qualche settimana ho iniziato un corso di java e stavo cercando di capire un programma che ci hanno mostrato a lezione...nel programma però c'è un errore che non riesco proprio a capire!! vi posto qua le due classi per maggiori chiarimenti!

Il programma è una semplicissima implementazione di una agenda:
Ci sono 10 caselle corrispondenti alle ore dalle 8 alle 18. Che contengono degli impegni
--Inizialmente le caselle sono vuote.
--Un impegno è caratterizzato da un argomento, un luogo, e una priorità (1-3)

L'errore segnalatomi da eclipse è nella riga in grassetto e precisamente dice:
"The method definisci(int, String, String, String, int) in the type Agenda is not applicable for the arguments (int, String, String, int)"
Ma se non mi sbaglio il metodo che è nella classe agenda è dichiarato corretto! non capisco perchè eclispe si ostini a considerarlo con un parametro String un più!!!
definisci(int, String, String, String, int)

CLASSE ESEMPIO
codice:
import agenda.Agenda;

public class Esempio {

	public static void main(String[] args) {
		
		//dichiarazione dell'oggetto agenda e creazione tramite new
		Agenda a = new Agenda();
		
		//creazione variabili
		int ora = 10;
		String arg = "Lezione";
		String luogo = "Aula 14";
		int pri = 1; 
		
		a.definisci(ora, arg, luogo, pri);
		
		System.out.println(a.Visualizza());
	}

}
CLASSE AGENDA
codice:
package agenda;

public class Agenda {
	
	private Impegno[] impegni;
	
	

	public void definisci(int ora, String arg, String luogo, int pri) {
		int indice = ora - 8;
		impegni[indice] = new Impegno ( arg, luogo, pri );
	}
	
	
	public Agenda () {
		impegni = new Impegno[10];
	}
	
	
	
	public String Visualizza() {
		String result = " ";
		for ( int i=0; i<impegni.length; i++ ) {
				result += "Ore " + (i+8) + (impegni[i]==null?"-" :impegni[i].toString())+"\n";				
		}
		return result;
		
	}
	
	
	

}
Ringrazio tutti per eventuali risposte