import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Vector;
public class GenericTest {
/*在JAVA1.4中的集合应用是无泛型的,我们可以向内部传入各种种类的值*/
public void Generic14(){
ArrayList co = new ArrayList();
co.add(1);
co.add(1L);
co.add("aaa");
/*但是我们需要在获取的时候对其进行强制类型转换*/
int i = (Integer)co.get(0);
System.out.println(i);
}
/*JDK1.5中添加了泛型关键字为<>(如<String>,其中放置的基本数据类型)这样有效的减少强制转换*/
public void Generic15() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{
ArrayList<Integer> cos = new ArrayList<Integer>();
cos.add(1);
cos.add(2);
/*因为经过泛型所以cos.add("abc");不能被编译器所通过,但是泛型的样式在编译过后将被剔除仍为ArrayList形式*/
/*以下为反射的例子,去做验证,利用反射的方法调用ArrayList的add方法向cos对象中插入字符串abc*/
Method method = ArrayList.class.getMethod("add", Object.class);
// 对象 参数值
method.invoke(cos, "abc");
//遍历cos对象
for(Object c : cos){
System.out.println(c);
}
}
public void Connection(){
//Collection父类
Collection c = new ArrayList();
//Vector类型用于做什么?
Vector<String> d = new Vector();
}
public static void main(String[] args) throws SecurityException, IllegalArgumentException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {
GenericTest genericTest = new GenericTest();
genericTest.Generic14();
genericTest.Generic15();
}
}
分享到:
相关推荐
"设计模式之从简单工厂到泛型简单工厂"这个主题关注的是创建型设计模式,特别是如何逐步改进简单工厂模式以提高其灵活性和可扩展性。简单工厂模式是一种静态工厂方法,用于创建对象,而泛型简单工厂则是对其的一种...
例如,以下是一个简单的泛型类`Pair`的定义: ```java public class Pair<T> { private T first = null; private T second = null; public Pair(T fir, T sec) { this.first = fir; this.second = sec; } ...
此外,文件名`Java.jpg`可能表示的是一个与这个泛型例子相关的图片,可能是一个截图或者示意图,用于帮助理解泛型的概念或者`MyFirstGeneric`类的结构和用法。在实际学习过程中,视觉辅助工具往往能够帮助我们更好地...
"简单的List泛型模拟"这个主题就是关于如何理解和实现一个简单的泛型列表类的模拟。 泛型的基本概念: 1. 泛型是Java SE 5.0引入的新特性,主要用于增强类型安全。 2. 泛型允许在定义类、接口和方法时使用类型参数...
定义泛型类:展示如何定义一个简单的泛型类,以及如何创建该类的实例并使用泛型参数。 泛型方法:演示如何在普通类中定义泛型方法,以及如何调用和使用泛型方法。 类型通配符:展示如何使用类型通配符来增加灵活性,...
类型参数是一个简单的标识符,它指示了用来创建一个构造类型的类型参数的占位符。类型参数是在后面将要被提供的类型的形式占位符。例如: ``` class C<T> { } ``` 这个声明定义了一个泛型类 C,其中 T 是一个类型...
本文将深入探讨C#中的泛型,它是C#的一个重要特性,对于初学者来说,理解并掌握泛型是提高编程效率和代码复用性的关键。 泛型在C#中引入的主要目的是为了提高类型安全性和性能。它允许我们在编写代码时定义不特定于...
例如,我们可以定义一个简单的泛型类 `Box`: ```java public class Box<T> { private T item; public void setItem(T item) { this.item = item; } public T getItem() { return item; } } ``` 在这个例子...
首先,让我们理解泛型的基本概念。泛型主要由两部分组成:类型参数和类型边界。类型参数是在类或方法声明中使用的占位符,用来表示任意类型。例如,`List<T>` 中的 `T` 就是一个类型参数。类型边界则限制了类型参数...
在C#编程语言中,泛型接口是一种强大的...通过理解和熟练使用泛型接口,开发者可以编写出更强大、更适应变化需求的软件系统。在实际开发中,泛型接口常用于设计通用服务、容器和算法,以提升代码的可扩展性和维护性。
为了更好地理解泛型的用法,让我们看一个具体的示例。假设我们需要创建一个可以存储不同类型对象的集合,并提供类型信息的方法。 ```csharp public class TypeHelper { public string GetType(T t) { return ...
在编程领域,泛型是一种强大的工具,它允许程序员创建可重用的代码,这些代码能够处理多种数据类型。...在设计和使用泛型结构体时,理解其工作原理和潜在陷阱至关重要,以确保代码的正确性和高性能。
#### 一、泛型概念的理解与重要性 在软件开发领域,特别是面向对象编程中,泛型是一种重要的编程技术,它允许开发者编写一种类型的代码来处理不同的数据类型,从而提高了代码的复用性和灵活性。在.NET框架下,WCF...
以下是一个简单的非泛型类示例: ```java public class NonGenericClass { private int value; public NonGenericClass(int value) { this.value = value; } public int getValue() { return value; } ...
例如,下面是一个简单的泛型方法定义: ```csharp public T Swap(T a, T b) { T temp = a; a = b; b = temp; return a; } ``` 在这个例子中,`T`就是一个类型参数,表示这个方法可以接受任何类型的参数。 **...
首先,我们要理解什么是泛型。泛型是Java和C#等现代编程语言中的一种特性,允许在数据结构(如List)中指定元素类型。这样做可以确保在编译时检查类型,避免运行时的类型转换异常,并提供更好的性能。例如,在Java中...
首先,我们需要理解什么是泛型。泛型允许我们在编程时定义一个通用的类、接口或方法,而不指定具体的类型。这样做的好处是,我们可以在编译时确保类型的安全性,同时避免了不必要的类型转换,减少了运行时的性能损失...
2. **如何定义简单泛型** 泛型的定义通常在类、接口或方法声明中,用尖括号 `<T>` 表示类型参数。在类 `Gclass<T>` 的例子中,`T` 是一个代表任意类型的占位符,可以被替换为任何实际类型。`getA()` 和 `setA(T)` ...