/**
* Created by Panda on 2018/5/29.
*/
public interface Generator <T>{
T next();
}
/**
* Created by Panda on 2018/5/29.
*/
public class GeneratorTest {
public static int size = 10 ;
public static void test (Class<?> surroundingClass) {
for (Class<?> type : surroundingClass.getClasses()) {
System.out.println(type.getSimpleName() + ": " );
try {
Generator<?> generator = (Generator<?>) type.newInstance();
for (int i = 0 ; i < size; i++) {
System.out.print(generator.next() + " " );
}
System.out.println();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
public static void main (String[] args) {
test(CountingGenerator.class);
}
}
package 生成器;
public class CountingGenerator {
public static class Boolean implements Generator <java .lang .Boolean >{
private boolean value=false ;
@Override
public java.lang.Boolean next() {
value=!value;
return value;
}
}
public static class Byte implements Generator <java .lang .Byte >{
private byte value=0 ;
@Override
public java.lang.Byte next() {
return value++;
}
}
static char [] chars=("abcdefghijklmnopqrstuvwxyz" +"ABCDEFGHIJKLMNOPQRSTUVWXYZ" ).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> characterGenerator =new Character();
public String(){}
public String(int length){
this .length=length;}
@Override
public java.lang.String next() {
char [] buf=new char [length];
for (int i = 0 ; i <length ; i++) {
buf[i]=characterGenerator.next();
}
return new java.lang.String(buf);
}
}
public static class Short implements Generator <java .lang .Short >{
private short value&#