`
onewayonelife
  • 浏览: 259745 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

泛型基础(二)

阅读更多

ListGenericFoo

package org.wp.generic;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class ListGenericFoo<T extends List> {
	private T[] fooArray;

	public T[] getFooArray() {
		return fooArray;
	}

	public void setFooArray(T[] fooArray) {
		this.fooArray = fooArray;
	}

	public static void main(String args[]) {
		ListGenericFoo<LinkedList> foo1 = new ListGenericFoo<LinkedList>();
		ListGenericFoo<ArrayList> foo2 = new ListGenericFoo<ArrayList>();

		LinkedList[] linkedList1 = new LinkedList[10];
		ArrayList[] arrayList = new ArrayList[10];

		foo1.setFooArray(linkedList1);
		foo2.setFooArray(arrayList);
	}
}

 

GenericFoo

package org.wp.generic;

import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

public class GenericFoo<T> {
	private T foo;

	public T getFoo() {
		return foo;
	}

	public void setFoo(T foo) {
		this.foo = foo;
	}

	public static void main(String args[]) {
		GenericFoo<? extends List> foo = null;
		foo = new GenericFoo<LinkedList>();
		foo = new GenericFoo<ArrayList>();

		GenericFoo<? super List> foo1 = null;
		foo1 = new GenericFoo<Object>();
		foo1 = new GenericFoo<Collection>();

		GenericFoo<String> foo2 = new GenericFoo<String>();
		foo2.setFoo("hello world");
		// GenericFoo<?> 等价于 GenericFoo<? extends Object>
		GenericFoo<? extends Object> foo3 = foo2;

		System.out.println(foo3.getFoo());

		foo3.setFoo(null);
		System.out.println(foo3.getFoo());

		// 错误 foo3.setFoo("welcome");
	}
}

 

 

 

分享到:
评论

相关推荐

    Java泛型编程指南.pdf

    #### 二、泛型的基础使用 **2.1 泛型类型的声明** 在定义泛型类或接口时,使用尖括号`&lt;T&gt;`来指定类型参数,其中`T`可以是任何有效的标识符。 ```java public class GenericClass&lt;T&gt; { private T value; public...

    java泛型指南 经典

    #### 二、Java 泛型概述 Java 泛型是一种允许编译器检查类型安全性的功能,并允许创建高度可重用的类和接口。通过使用泛型,开发者可以在运行时避免强制类型转换,并且能够编写更易于理解、维护和扩展的代码。 ###...

    泛型和泛型集合类用法

    #### 一、泛型基础概念 泛型是现代编程语言中的一项重要特性,它允许开发者在不指定具体数据类型的情况下编写类或方法,从而达到代码重用的目的。在.NET Framework 2.0及以后版本中,泛型得到了广泛的应用和支持。...

    C#泛型接口实例

    一、泛型接口基础 1. 定义泛型接口:泛型接口通过在接口名称后添加尖括号`&lt;T&gt;`来声明,其中`T`是类型参数,代表一个未知的数据类型。例如: ```csharp public interface IMyGenericInterface { void Process(T ...

    java基础泛型 学习全文件

    二、泛型的边界 1. 上界通配符:`? extends T`表示类型参数必须是`T`或其子类。这允许我们使用各种类型的对象,但只能调用那些不依赖具体类型的方法。 2. 下界通配符:`? super T`表示类型参数必须是`T`或其父类。这...

    JAVA面试基础篇章-泛型

    泛型在面试中是一个常考的话题,它不仅考察程序员对Java基础知识的掌握,也反映了对集合框架中类型安全和类型擦除的理解。在编写或阅读涉及泛型的Java代码时,理解其定义、工作原理、类型擦除的原因,以及通配符的...

    细细品味C#(泛型专题)

    C# 提供了丰富的泛型集合接口,如 `IList&lt;T&gt;`、`ICollection&lt;T&gt;`、`IEnumerable&lt;T&gt;` 和 `IDictionary, TValue&gt;` 等,这些接口为开发泛型集合类提供了基础。 - **4.2.2 泛型约束** - **类型约束**:使用 `where` ...

    Android okgo 最新流行网络封装各种类型返回泛型

    OkGo是一款非常流行的网络库,它基于OkHttp进行了二次封装,提供了简洁、高效、易用的API,广泛应用于众多Android项目中。本篇文章将详细介绍OkGo的最新特性以及如何在Android项目中进行泛型返回的网络请求。 首先...

    高级无敌,c#泛型例子

    在"02 第二讲 泛型"的学习资源中,你可能涵盖了以下内容: 1. **基础语法**:如何声明和使用类型参数,如创建泛型类、泛型方法的示例。 2. **泛型集合**:对`List&lt;T&gt;`、`Dictionary, TValue&gt;`等常用泛型集合的用法...

    java 泛型的使用 详细讲解

    #### 二、泛型的概念与意义 ##### 2.1 什么是泛型? 泛型(Generics)是指在面向对象编程中,通过参数化类型来达到类型重用的目的。通俗地说,就是将类或方法中的某些类型定义为参数形式,在实际使用时再传入具体...

    java泛型编程

    本文将详细探讨Java泛型的基础概念、工作原理以及如何在实际开发中有效地使用泛型。 #### 二、Java泛型编程的重要性 Java泛型编程的主要目的是提高代码的复用性和类型安全性。在没有泛型之前,开发者通常使用...

    适合初学者的C# 泛型详解

    本文旨在详细介绍泛型的基础知识及其在 C# 中的应用,并探讨其背后的原理。 #### 二、理解泛型 ##### 2.1 泛型的基本概念 泛型是一种高级编程技术,它允许程序员编写能够处理多种类型但又具有类型安全性的代码。...

    C#泛型学习

    #### 二、泛型的基础概念 泛型是一种允许我们在类、接口或方法级别上使用类型参数的特性。这些类型参数可以在运行时由具体的类型替换,从而实现了代码的复用性和灵活性。 **优点:** 1. **类型安全性**:泛型提供...

    泛型编程与伴随.pdf

    - 伴随的定义特性与编程中的β-规则、η-规则和融合定律相对应,这些规则是编程代数的基础,也是泛型编程中的优化原则。 #### 四、递归方案中的伴随应用 - **编程代数**通常基于**初始代数**理论,其中程序以折叠的...

    实例190 - 泛型化的折半查找法

    1. **泛型基础**: - 泛型引入了类型参数的概念,例如 `&lt;T&gt;`,其中 `T` 是一个占位符,代表任意类型。 - 使用泛型可以确保在编译时进行类型检查,避免运行时错误。 - 泛型方法允许我们在方法定义中使用类型参数,...

    尚硅谷-实验2:自定义泛型类的使用.pdf

    1.更适合零基础学员: ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你...

    C#2.0的泛型编程

    通过本文的学习,我们不仅了解了C#2.0中泛型的基础概念,而且还深入了解了泛型的优点、基本使用以及一些高级特性。泛型为C#开发提供了强大的工具,使得代码更加灵活、高效且易于维护。对于希望提升代码质量和性能的...

    泛型程式设计与STL.pdf

    #### 二、泛型编程 - **定义**:泛型编程是一种编程范式,允许开发者编写能够处理多种类型的数据的代码,通过将类型参数化,达到代码的灵活性和复用性。这种技术的核心在于使用模板(template)来创建可以适用于多种...

    Java泛型编程快速入门

    #### 二、Java泛型基础 **2.1 泛型类的定义** Java泛型最基础的概念之一是泛型类。泛型类是指在定义类时,将类中的某种数据类型用作参数的一种方式。这种参数类型可以被用于类中的某些成员变量或方法中,从而使得...

Global site tag (gtag.js) - Google Analytics