a java静态导入: import static java.lang.Math.max; public class javatest{ public static void main(String[] args) { int a = max(1, 3); System.out.println(a); } } 可变参数和增强型for循环: public class javatest{ public static void main(String[] args) { int a = sum(1,2,3,4,5); System.out.println(a); } public static int sum(int ... args) { int ret = 0; for(int i = 0; i < args.length; i++) { ret += args[i]; } return ret; } public static int sum2(int ... args) { int ret = 0; for(int x : args) { ret += x; } return ret; } } 自动装箱拆箱 享元模式 枚举: public class javatest{ public static void main(String[] args) { WeekDay a = WeekDay.Sunday; a.toString(); a.name(); a.ordinal(); a.valueOf("Sunday"); a.values(); } enum WeekDay { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday; } } public enum TrafficLamp { RED(30){ public TrafficLamp nextLamp(){ return GREEN; } }, GREEN(35){ public TrafficLamp nextLamp(){ return YELLOW; } }, YELLOW(5){ public TrafficLamp nextLamp(){ return RED; } }; private int time; public abstract TrafficLamp nextLamp(); private TrafficLamp(int time) { this.time = time; } } 枚举只有一个成员时,就可以作为一种单例的实现方式。 Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是Class. 得到各个字节码对应的实例对象: Class cls1 = Date.class; Class cls2 = new Date().getClass(); Class cls3 = Class.forName("java.util.Date"); Constructor类代表某个类中的一个构造方法 Constructor constructors[] = Class.forName("java.lang.String").getConstructors(); Constructor constructor = Class.forName("java.lang.String").getConstructor(StringBuffer.class); 构建实例对象: String str = new String(new StringBuffer("abc")); String str = (String)constructor.newInstance(new StringBuffer("abc")); 成员变量的反射: import java.lang.reflect.Field; public class javatest { public static void main(String[] args) throws Exception { ReflectPointer rp = new ReflectPointer(3, 5); Field fieldX = rp.getClass().getField("x"); System.out.println(fieldX.get(rp)); Field fieldY = rp.getClass().getDeclaredField("y"); fieldY.setAccessible(true); System.out.println(fieldY.get(rp)); } } class ReflectPointer { public int x; private int y; public ReflectPointer(int x, int y) { super(); this.x = x; this.y = y; } } 将任意一个对象中的所有String类型的成员变量所对应的字符串内容中的"b"改成"a". public static void fn(Object obj) throws Exception { Field[] fields = obj.getClass().getFields(); for(Field f : fields) { if(f.getType() == String.class) { String tmp = ((String)f.get(obj)).replace('b', 'a'); f.set(obj, tmp); } } }
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交