public class GenericTest
{
/**
* 泛型声明,定义泛型方法
* @param <T>
* @param <K>
* @param t
* @param k
*/
public <T, K> K save(T t, K k)
{
return null;
}
@Test
public void testMethod() throws Exception
{
//使用泛型方法: 在使用泛型方法的时候,确定泛型的类型
save("hello", 1);
}
}
泛型类:
public class GenericTest<T>
@Test
public void testMethod() throws Exception
{
//使用泛型方法: 在使用泛型方法的时候,确定泛型的类型
//save("hello", 1);
//泛型类如何使用:在创建泛型类的时候确定
GenericTest<String> demo = new GenericTest<String>();
demo.save("hello", 1);
}
/**
* @ClassName: App
* @Description: 反射技术
* @author lqw
* @date 2016-5-13 下午01:33:55
*
*/
public class App
{
@Test
public void testInfo() throws Exception
{
//类全名
String sql = "com.hbmy.reflect.demo2.Admin";
//得到类的字节码
Class<?> clazz = Class.forName(sql);
/**
* 创建对象1: 通过默认构造函数创建(简写)
*/
Admin admin = (Admin) clazz.newInstance();
/**
* 创建对象2: 通过无参构造器创建对象
*/
Constructor<?> constructors = clazz.getDeclaredConstructor();
constructors.newInstance();
/**
* 创建对象3:通过有参构造器创建对象
*/
Constructor<?> constructor = clazz.getDeclaredConstructor(String.class);
Admin admin2 = (Admin) constructor.newInstance("zhangsan");
// System.out.println(admin);
}
/**
* 获取属性名称、值
* getDeclaredFields: 获取所有的包含私有的属性名称
* getFields:只能访问public的属性
*/
@Test
public void testNameAndValue() throws Exception
{
//类全名
String sql = "com.hbmy.reflect.demo2.Admin";
//得到类的字节码
Class<?> clazz = Class.forName(sql);
Admin admin = (Admin) clazz.newInstance();
// Method[] methods = clazz.getMethods();
// for (Method method : methods)
// {
// //设置强制访问
// method.setAccessible(true);
// //名称
// String name = method.getName();
// System.out.println(name);
//
// }
// Field[] fields = clazz.getFields();//打印出来的结果只有money
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields)
{
//设置强制访问
field.setAccessible(true);
//名称
String name = field.getName();
Object value = field.get(admin);
System.out.println(name + value);
}
}
/**
* 反射获取方法
*/
@Test
public void testGetMethods() throws Exception
{
//类全名
String sql = "com.hbmy.reflect.demo2.Admin";
//得到类的字节码
Class<?> clazz = Class.forName(sql);
Admin admin = (Admin) clazz.newInstance();
/*
* 获取方法对象
*/
Method declaredMethod = clazz.getDeclaredMethod("getId");
/**
* 调用方法
*/
Object return_value = declaredMethod.invoke(admin);
System.out.println(return_value);
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods)
{
method.setAccessible(true);
String name = method.getName();
System.out.println(name);
}
}
public class App
{
@Override
public String toString()
{
return super.toString();
}
@SuppressWarnings({"unused","unchecked"})
public void save()
{
List list = null;
}
@Deprecated
public void save1()
{
}
}
public @interface Author
{
/**
* 注解属性
* 1.修饰符为默认或者public
* 2.不能有主体
* 3. 如果注解名称为value,使用的时候可以省略名称,直接给值
*/
String name() default "lqw";
//带默认值得注解
int age() default 23;
String remark();
}
指定注解的可用范围
@Target({
TYPE,
FIELD,
METHOD,
PARAMETER,
CONSTRUCTOR,
LOCAL_VARIABLE})
注解的生命周期
/**
* 元注解2: 指定注解的生命周期
* RetentionPolicy.SOURCE 只在源码级别有效
* RetentionPolicy.CLASS 只在类的字节码级别有效 默认值
* RetentionPolicy.RUNTIME 只在运行时期有效
*/
@Retention(RetentionPolicy.SOURCE)
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有