今天写了个随机数获取的工具类,因为需要 int 和 float 两种类型的数据,所以写了两个方法,代码如下:
/**
* 获取指定范围内的数据,int
*
* @param min 最小值
* @param max 最大值
* @return
* @author "BK_DeathKninght"
* @date 2011-7-22
*/
public static int getInt(int min,int max) {
Random r = new Random();
return (r.nextInt(max)%(max - min + 1) + min);
}
/**
* 获取指定范围内的数据,float
*
* @param min 最小值
* @param max 最大值
* @return
* @author "BK_DeathKninght"
* @date 2011-7-22
*/
public static float getFloat(int min,int max) {
Random r = new Random();
//min-max
return (r.nextInt(max)%(max - min + 1) + min);
}
很奇怪,两个方法的 函数体完全一样的!只有函数声明上的返回类型是不一样的。
写个测试函数查看两个方法的执行结果:
public static void main(String[] args) {
int index = 0;
while(index++ <= 10) {
System.out.println("" + index + " --> " + MyRandom.getInt(1,100));
System.err.println("" + index + " --> " + MyRandom.getFloat(1,100));
}
}
Console:
返回的数据类型自动转变了!~~~~
原因不是很清楚,应该是两个方法在返回时根据其声明对数据进行了类型自动转变。