17.泛型
17.1 知识点
Java中泛型
Java中泛型使用的基本规则和C#中一致。泛型可以代表一切类型,主要使用上就是泛型类和泛型方法。主要区别如下:
- 泛型方法写法用法不同
- 泛型约束不同
- 泛型类型通配符
- 一些基础类型必须写他们的包装类名,不能写变量类型
泛型基本用法
public class Lesson_17Test<T> {
public T testValue;
public T TestFun(T t) {
return null;
}
// Java中的泛型方法 是写到访问修饰符后面的 C#是在方法后的
public <K> void TestFun2(K k) {
}
}
泛型类和泛型方法使用示例:
// 泛型类和泛型方法
Lesson_17Test<Float> ob = new Lesson_17Test<>();// 假如约束了就可能报错
ob.testValue = 11f;
ob.TestFun(15f);
// Java当中的泛型方法的调用 和普通方法调用没什么区别
// 用什么类型传什么类型即可 都不需要指明类型 C#中是要<>传的,也可以省略
ob.TestFun2("123");
Java中的泛型限制(泛型约束)
public class Lesson_17Test<T extends Lesson17_TestFather> {}
T extends 类名或接口名
:表示泛型类型必须是或者继承某一个类或接口。
示例:
Lesson_17Test<Lesson17_TestSon> obj = new Lesson_17Test<>();
泛型中的类型通配符 ?
// 泛型类名称<? extends 类名> 变量名 = null;
// ? extends 类名 表示类未知,需要使用该泛型对象时,可以单独实例化
Lesson_17Test<?> obj2 = null;
obj2 = new Lesson_17Test<Lesson17_TestSon>();
obj2 = new Lesson_17Test<Lesson17_TestFather>();
总结
Java中泛型和C#中使用规则上基本相同。主要区别是:
- 泛型方法写法和使用不同
- 泛型约束不同
- 泛型类型通配符 ?
- 一些基础类型必须写他们的包装类名,不能写变量类型
17.2 知识点代码
Lesson_17Test
public class Lesson17_Test<T extends Lesson17_TestFather> {
public T testValue;
public T TestFun(T t)
{
return null;
}
//Java中的泛型方法 是写到访问修饰符后面的 C#是在方法后的
public<K> void TestFun2(K k)
{
}
}
Lesson17_泛型
public class Lesson17_泛型
{
public static void main(String[] args)
{
//知识点1:Java中泛型
//Java中泛型使用的基本规则和C#中一致
//泛型可以代表一切类型,主要使用上就是泛型类和泛型方法
//主要区别如下
//1.泛型方法写法用法不同
//2.泛型约束不同
//3.泛型类型通配符
//4.一些基础类型必须写他们的包装类名,不能写变量类型
//知识点2:泛型基本用法
//泛型类和泛型方法
//Lesson_17Test<Float> ob = new Lesson_17Test<>();//假如约束了就可能报错
//ob.testValue = 11f;
//ob.TestFun(15f);
//Java当中的泛型方法的调用 和普通方法调用没什么区别
//用什么类型传什么类型即可 都不需要指明类型 C#中是要<>传的,也可以省略
//ob.TestFun2("123");
//知识点3:Java中的泛型限制(泛型约束)
//T extends 类名或接口名:表示泛型类型必须是或者继承某一个类或接口
Lesson17_Test<Lesson17_TestSon> obj = new Lesson17_Test<>();
//知识点4:泛型中的类型通配符 ?
//泛型类名称<? extends 类名> 变量名 = null;
//? extends 类名 表示类未知,需要使用该泛型对象时,可以单独实例化
Lesson17_Test<?> obj2 = null;
obj2 = new Lesson17_Test<Lesson17_TestSon>();
obj2 = new Lesson17_Test<Lesson17_TestFather>();
//总结
//Java中泛型和C#中使用规则上基本相同
//主要区别是
//1.泛型方法写法和使用不同
//2.泛型约束不同
//3.泛型类型通配符 ?
//4.一些基础类型必须写他们的包装类名,不能写变量类型
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com