【ThinkingInJava】44、数据生成器
来源:互联网 发布:淘宝账户永久无法注销 编辑:程序博客网 时间:2024/06/10 10:31
<pre name="code" class="java">//: net/mindview/util/Generator.java// A generic interface.package net.mindview.util;public interface Generator<T> { T next(); } ///:~
/*** 书本:《Thinking In Java》* 功能:数据生成器--策略设计模式* 文件:CountingGenerator.java* 时间:2015年4月29日19:05:09* 作者:cutter_point*/package net.mindview.util;public class CountingGenerator{//一个布尔值的静态类public static class Boolean implements Generator<java.lang.Boolean>{private boolean value = false;@Overridepublic java.lang.Boolean next(){//返回一个和value相反的值value = !value;return value;}}//字节类型的静态类public static class Byte implements Generator<java.lang.Byte>{private byte value = 0;@Overridepublic java.lang.Byte next(){//下一个就是加一位,并返回前面那个值return value++;}}//静态的字符数组包含所有的字母static char[] chars = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();//字符型的public static class Character implements Generator<java.lang.Character>{int index = -1;//索引@Override//得到一串字符里面的public java.lang.Character next(){index = (index + 1)%chars.length;//看看下一个字符在所有的字母里面的第几位return chars[index];}}//字符串类型public static class String implements Generator<java.lang.String>{private int length = 7;Generator<java.lang.Character> cg = new Character();public String() {}public String(int length) { this.length = length; }public java.lang.String next(){char[] buf = new char[length];for(int i = 0; i < length; ++i){buf[i] = cg.next();}return new java.lang.String(buf);}}//short类型的数据public static class Short implements Generator<java.lang.Short>{private short value = 0;@Overridepublic java.lang.Short next(){return value++;}}public static class Integer implements Generator<java.lang.Integer>{private int value = 0;@Overridepublic java.lang.Integer next(){return value++;}}public static class Float implements Generator<java.lang.Float> { private float value = 0; public java.lang.Float next() { float result = value; value += 1.0; return result; }}public static class Double implements Generator<java.lang.Double>{private double value = 0.0;public java.lang.Double next(){double result = value;value += 1.0;return result;}}//public static void main(java.lang.String[] args)//{//Byte b = new Byte();//int i = b.next();//System.out.println(i);////System.out.println(new Character().next());////String s = new String(9);////System.out.println(s.next());//}}
/*** 书本:《Thinking In Java》* 功能:数据生成器--策略设计模式--测试类* 文件:CountingGenerator.java* 时间:2015年4月29日19:05:09* 作者:cutter_point*/package Lesson16Arrays;import net.mindview.util.CountingGenerator;import net.mindview.util.Generator;public class GeneratorsTest{public static int size = 10;public static void test(Class<?> surroundingClass){for(Class<?> type : surroundingClass.getClasses()) //取得这个类对象里面的类{//取得这个类型的数组System.out.println(type.getSimpleName() + ": ");try{Generator<?> g = (Generator<?>)type.newInstance(); //获取一个实例化对象//输出他的计数for(int i = 0; i < size; ++i){System.out.printf(g.next() + " ");}System.out.println();}catch (Exception e){e.printStackTrace();}}}public static void main(String[] args){test(CountingGenerator.class);}}
输出:
Boolean:
true false true false true false true false true false
Byte:
0 1 2 3 4 5 6 7 8 9
Character:
a b c d e f g h i j
Double:
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0
Float:
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0
Integer:
0 1 2 3 4 5 6 7 8 9
Short:
0 1 2 3 4 5 6 7 8 9
String:
abcdefg hijklmn opqrstu vwxyzAB CDEFGHI JKLMNOP QRSTUVW XYZabcd efghijk lmnopqr
0 0
- 【ThinkingInJava】44、数据生成器
- ThinkingInJava
- 数据生成器
- 数据生成器。。。
- 数据生成器
- 数据生成器
- Data2SQL数据脚本生成器
- Noi2003-数据生成器
- PL/SQL 数据生成器
- 连连看,数据生成器
- Oracle plsql数据生成器
- 随机数 数据生成器
- c++数据生成器
- 通用JSON数据生成器
- [数据生成器] 无根树
- 【ThinkingInJava】笔记
- 试验数据生成器研究中.....
- Python学习 随机数据生成器
- 32位和64为操作系统
- ASP.NET(C#)读取Excel的文件内容
- 三种连接方式的特点
- HTTP状态码404代码500代码等解释
- 新闻发布系统,我学会了什么?
- 【ThinkingInJava】44、数据生成器
- eclipse+webservice开发实例【开发环境jdk1.7.0_67+eclipse-jee-luna+tomcat6.0.30+axis2-1.6.1(此为webservice的jar包)】
- POJ 2752 Seek the Name, Seek the Fame(kmp)
- 安装R package的2种方法
- 14 个 Linux grep 命令的例子
- 贝塞尔曲线
- Number of 1 Bits
- 黑马程序员-----------ios培训 oc内存管理(一)
- OC 使用 “消息结构”