public Field getField(String name)

返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段。
获得成员变量:
Field aField = clazz.getDeclaredField("name"); //因为name变量是private的,所以不能用getField方法
aField.setAccessible(true);//值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。
aField.set(object,"二大爷");
Object obj = aField.get(object);
System.out.println(obj);
获取构造器
public Constructor<?>[] getDeclaredConstructors()
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
public Constructor<?>[] getConstructors()
public Constructor<T> getConstructor(Class<?>... parameterTypes)
在构造哈夫曼树时,可以设置一个结构数组huffnode 保存哈夫曼树中各结点的信息,根据二叉树的性质可知,具有n 个叶子结点的哈夫曼树共有2n-1 个结点,所以数组huffnode 的大小设置为2n-1,数组元素的结构形式如下:其中,weight 域保存结点的权值,lchild 和rchild 域分别保存该结点的左、右孩子结点在数组huffnode 中的序号,从而建立起结点之间的关系。 print "我是被装饰的函数"#输出:#我是构造装饰器的工人,当你让我构造装饰器时,我被执行一次 #我是装饰器,当你装饰一个函数式,我就被执行#作为装饰器java反射机制,我将返回包装器函数#最终: decorated_function() 。 print "我是被装饰的函数"decorated_function = decorator_maker()(decorated_function)#我是构造装饰器的工人,当你让我构造装饰器时,我被执行一次 #作为构造装饰器的工人,我得返回装饰器#我是装饰器,当你装饰一个函数式,我就被执行#作为装饰器,我将返回包装器函数# 最后调用:decorated_function() 。
代码示例####
一个关于顾客的类Consumer:
public class Consumer {
private long id;//私有的
public String name;//共有的
/*没参数构造体*/
public Consumer() {
}
/*有参数构造体*/
public Consumer(long id, String name) {
this.id = id;
this.name = name;
}
/*getter setter*/
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/*私有的无参buy方法*/
private static void buy() {
System.out.println("私有的无参buy方法");
}
/*共有的有参有返回值consume方法*/
public String consume(String giftName) {
System.out.println("买了一件礼物: " + giftName);
return giftName;
}
}
TestReflect类通过反射得到Consumer类的信息
public class TestReflect {
public static void getProperty() throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException, NoSuchFieldException {
try {
/* 获取对象类型 */
Class<?> clazz = Class.forName("com.Dan.Consumer");
Object object = clazz.newInstance();
/* 获取到所有属性 */
Field[] field = clazz.getDeclaredFields();
for (Field f:field) {
//String fieldName = f.getName();// 取到属性名字
//System.out.println(fieldName);
System.out.println(f);
}
/* 获取到所有的方法,包括私有的,但不包括父类的 */
Method[] methods = clazz.getDeclaredMethods();
for (Method m:methods){
//String methodName = m.getName();
//System.out.println(methodName);
System.out.println(m);
}
/* 所有的构造体 */
Constructor[] constructors = clazz.getDeclaredConstructors();
for (Constructor c:constructors){
System.out.println(c);
}
// 调用方法
Method method = clazz.getMethod("info", String.class, long.class);//获取方法
method.invoke(object, "隔壁老王",2017032009);
//得到属性
Field aField = clazz.getDeclaredField("name"); //因为name变量是private的,所以不能用getField方法
aField.setAccessible(true);
aField.set(object,"二大爷");
Object obj = aField.get(object);
System.out.println(obj);
// 得到构造器
Constructor constructor = clazz.getDeclaredConstructor(long.class, String.class);
constructor.newInstance(2016040221, "王小二");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws InvocationTargetException, NoSuchMethodException,
InstantiationException, IllegalAccessException, NoSuchFieldException {
getProperty();
}
}
// private long com.Dan.Consumer.id
// public java.lang.String com.Dan.Consumer.name
// public java.lang.String com.Dan.Consumer.getName()
// public void com.Dan.Consumer.setName(java.lang.String)
// public long com.Dan.Consumer.getId()
// private static void com.Dan.Consumer.buy()
// public void com.Dan.Consumer.setId(long)
// public void com.Dan.Consumer.info(java.lang.String,long)
// public com.Dan.Consumer()
// public com.Dan.Consumer(long,java.lang.String)
// 我是:隔壁老王,会员编号: 2017032009。
// 二大爷
写完喽!ㄟ(▔,▔)ㄏㄟ(▔,▔)ㄏㄟ(▔,▔)ㄏ
首先,教师应运用课堂教学引导学生学会思考,梳理知识形成过程的思考脉络.要求学生当天写下这一共同发现过程,重视学生的反思能力培养,包括对课堂知识学习的回忆、归纳、总结、提高、反思、创新.。例如:在如二年级唱游课中要求学生掌握四分音符、八分音符、十六分音符,如果光听老师讲,学生对学习一点儿也没有兴趣而且根本听不懂,这是一个让所有老师都头疼的问题,于是我运用“搭节奏”的游戏,让学生自行组成活动小组,在搭搭拆拆的游戏中学习掌握到新知识.在他们的游戏过程中不单单解决了怎样搭节奏这个知识点,而且继续在研究搭完了节奏之后,怎样拆了节奏再搭新的节奏我们还进行了比赛,看哪一小组节奏搭得又快又好.这样的教学方式,不但使学生掌握了知识点,激发了学生的创造力,而且也锻炼了他们小组合作的能力,因为只有小组成员共同努力,才能得到最后的胜利.。如果要系统的去学知识看书是一种最好的方法,最有效的碎片化阅读方法我觉得是带着问题去收集碎片,然后按照自己的逻辑进行梳理,这样的学习才脚踏实地,能具体实施。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-111388-2.html
中国海军实力也是超过日本的
1000次911美国消失得差不多了