import java.util.Arrays;
interface IntArrayProductor{
int product();
}
public class CommandTest {
public int[] process(IntArrayProductor cmd , int length){
int[] result = new int[length];
for(int i=0;i<length;i++){
result[i] = cmd.product();
}
return result;
}
/**
* @param args
*/
public static void main(String[] args) {
CommandTest ct = new CommandTest();
final int s = 5; //为什么内部类能访问局部变量必须用final修饰
int[] result = ct.process(new IntArrayProductor(){
public int product(){
return (int)Math.round(Math.random() * s);
}
}, 6);
System.out.println(Arrays.toString(result));
}
}
视频里当时讲了内部类访问局部变量必须用final修饰,只是记住了,但写的时候不知道原理总出问题,为什么必须用final修饰,最好举个简单的例子,谢谢。
|
|