Re: Can a method be a parameter of another method in Java?
Hi,
Shawn wrote:
/*
For testing passing a method as a method parameter
*/
interface Mapper {
void map(int[] d);
}
class Test {
void doSomethingToArray(Mapper m, int[] aArray) {
m.map(aArray);
} //end of method doSomethingToArray
Mapper squareArray = new Mapper() {
void map(int[] a)
{
for (int i=0; i<a.length; i++)
{
a[i] *= a[i];
}
}
}
Mapper printArray = new Mapper() {
void map(int[] a)
{
for (int i=0; i<a.length; i++)
{
System.out.println(a[i]);
}
}
}
Besides the missing ';', there is another design-flaw IMHO. I would do
it like this:
interface Mapper {
int map(int a);
}
class Test {
void doSomethingToArray(int[] as, Mapper m) {
for(int i=0;i<as.length;i++) {
as[i]=m.map(as[i]);
}
}
}
Mapper square=new Mapper() {
int map(int i) {
return i*i;
}
}
Mapper print=new Mapper() {
int map(int i) {
System.out.println(i);
return i; // (*)
}
}
(*) here you can see, that "printing" is not really a kind of
"Mapper"-function.
Ciao,
Ingo