/*
* Copyright 2008 biaoping.yin
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.frameworkset.util;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.frameworkset.util.ClassUtil.ClassInfo;
import org.frameworkset.util.ClassUtil.PropertieDescription;
import org.junit.Test;
/**
* <p>
* Title: Asm.java
* </p>
* <p>
* Description:
* </p>
* <p>
* bboss workgroup
* </p>
* <p>
* Copyright (c) 2008
* </p>
*
* @Date 2011-12-30
* @author biaoping.yin
* @version 1.0
*/
public class Asm
{
@Test
public void testaddGETSETMethodForClass() throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException
{
Class clazz = Foo.class ;
Field title = clazz.getDeclaredField("age");
if(!title.isAccessible())
title.setAccessible(true);
Foo ins = new Foo();
System.out.println(title.get(ins));
ClassInfo classInfo = ClassUtil.getClassInfo(clazz);
PropertieDescription p = classInfo.getPropertyDescriptor("age");
Class clazz1 = classInfo.getClazz();
Method[] methods = classInfo.getDeclaredMethods();
Object ins1 = null;
try {
ins1 = clazz1.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(clazz == clazz1);
}
public static class Foo
{
private final static String age = "duoduo";
public String execute(String name,String country)
{
System.out.println("helloword:" + name);
return "helloword:" + name;
}
public String getAge() {
return age;
}
}
}