`
lan13217
  • 浏览: 495989 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

让static方法具有泛型能力

    博客分类:
  • Java
 
阅读更多
在Java的泛型里,对于static方法而言,是无法访问泛型类的类型参数的.因此,如果想让static方法具有泛型能力,就必须使其成为泛型方法.

正确示例:
public class Test
{
    public static <T> T f(T c) { //注意<T>声明,使此方法成为泛型方法
        return c; 
    }
}


错误示例:
public class Test<T>
{
    public static T f(T c) { //无法通过编译

        return c; 
    }
}
分享到:
评论

相关推荐

    C#泛型类、泛型方法、泛型接口、泛型委托的实例

    泛型类和泛型方法可以提高代码的复用性,泛型接口确保了接口实现的一致性,而泛型委托则增强了函数式编程的能力。在实际项目中,熟练运用这些泛型特性可以显著提升代码质量,降低维护成本。通过`TUsingDemo`这样的...

    Java 泛型最全指南(定义和使用+继承泛型类/实现泛型接口+泛型的边界+通配符+类型擦除)

    Java 泛型详解 ...如果要使静态方法具有泛型能力,可以使用泛型方法。 Java 泛型是一种强大的编程技术,能够提高代码的复用性和类型安全性。但是,需要注意泛型的边界和类型擦除,以确保代码的正确性和安全性。

    c#2_0的新特性泛型

    泛型为C#程序员提供了编写高效、类型安全且可重用代码的能力,极大地提高了代码的灵活性和性能。下面我们将深入探讨C# 2.0中的泛型特性。 一、泛型概述 泛型是一种模板或者模式,允许程序员在不指定具体数据类型的...

    [免费视频与文档]C#泛型编程大全.rar

    泛型方法则是在类或结构体中定义的方法,它具有一个或多个类型参数。例如,一个简单的泛型方法可以用于交换两个变量的值: ```csharp public static void Swap(ref T a, ref T b) { T temp = a; a = b; b = temp;...

    Java泛型的理解与等价实现

    3. **泛型方法**:方法也可以具有类型参数,例如`public static &lt;T&gt; void swap(List&lt;T&gt; list, int i, int j)`。 4. **通配符**:`?`用于表示未知类型,例如`List&lt;?&gt;`表示可以接受任何类型的列表,但不能向其中添加...

    使用Func调用异步方法的Helper类泛型

    除了基本的Func调用,我们还可以扩展Helper类以支持更多的泛型参数,以便处理具有不同参数数量和类型的异步方法。例如,我们可以添加`CallAsync, TResult&gt;`,`CallAsync, T2, TResult&gt;`等方法,以适应不同的场景。 ...

    策略模式代码

    总结来说,策略模式提供了在运行时选择不同行为的能力,而Java的泛型则保证了代码的类型安全和复用性。在实际项目中,这种模式常用于需要动态切换算法或者行为的场景,如排序、支付方式选择、图形渲染等。通过解耦...

    java反射

    这种能力对于框架设计、代码生成等场景具有重要意义。 #### 二、反射基本概念 在深入探讨代码片段之前,我们先来了解一下Java反射的基本概念: 1. **Class**: 表示一个类的对象。 2. **Field**: 表示类中的一个...

    Java - Generic

    5. **泛型与枚举**:泛型也可以应用于枚举,以创建具有特定类型的枚举常量。 6. **野蛮类型**:在必须使用未指定类型的泛型时,可以使用`raw type`,如`List list = new ArrayList();`,但这样做会丧失泛型带来的...

    C#面向对象设计模式纵横谈(23):(行为型模式) Strategy 策略模式

    它通过将算法封装到具有独立接口的类中,使得算法可以互相替换,从而让系统的设计更加灵活,易于扩展。 策略模式的核心组成部分包括上下文(Context)、策略(Strategy)和具体策略(Concrete Strategy)。上下文是使用...

    java基础(超详细。。学习笔记) 公司内部资料!保密哦!!!

    本篇学习笔记将深入探讨Java的基础概念,主要包括初始化、数据类型、对象、变量类型、集合类、泛型、垃圾回收、方法重载与重写以及static关键字。 首先,初始化是程序执行的起点,涉及到变量的分配和设定初始值。在...

    非常实用的30道java面试题

    20. **泛型**:泛型提供了在编写代码时指定类型的能力,可以应用于类、接口和方法,提高代码的类型安全性和可读性。 21. **反射**:反射允许在运行时动态地访问和修改程序元素,如类、接口、字段和方法,常用于配置...

    面试小抄第二版.pdf

    **反射机制**:运行时动态获取类信息并调用方法的能力,优点在于增强了程序的灵活性,缺点是降低了性能。 52-54. **反射获取Class对象**:通过Class.forName()、对象.getClass()或类名.class等方式。 55-57. **...

    myReflect源代码

    这种能力使得Java具有很高的灵活性,特别是在处理动态加载类、组件交互以及框架设计等方面。 myReflect项目的核心部分通常包括以下几个关键组件: 1. **Class对象**:在Java中,`Class`类代表一个类的运行时信息。...

    Java基础核心知识点总结(79页).pdf

    枚举是Java中的特殊类,用于定义固定的常量集合,具有继承、接口实现和方法定义的能力。Java的I/O流模型包括File类和其他基础IO类,如InputStream、OutputStream、Reader、Writer及其子类。它们支持字节流和字符流...

    C# 2.0新特性

    泛型提供了创建类型安全的容器的能力,允许在不牺牲性能的情况下重用代码。泛型接口、类和方法允许创建适用于多种类型的代码。 7. **Partial类**: Partial类允许将一个类的定义分散到多个源文件中,这在处理大型...

    Swifter - 100 个Swift 必备Tips (第二版)

    协议中的mutating方法要求遵循该协议的类型必须提供一个可修改其实例的方法实现,这在实现具有状态变化能力的协议时尤为重要。 4. **Sequence** Swift提供了丰富的序列类型和操作,如Array、Set等,它们支持一...

    黑马程序员入学Java精华总结

    - static修饰的成员变量或方法属于类本身,而非对象实例。 5. **匿名对象** - 直接使用new关键字创建对象而不赋予引用变量。 6. **this关键字** - this关键字用来引用当前对象。 7. **面向对象之封装** - ...

    C#题目.rar

    2. 关键字与语法:C#有众多关键字,如`class`、`public`、`private`、`static`、`void`等,它们在程序中具有特定含义。C#的语法简洁且严谨,易于理解和学习。 3. 控制结构:C#提供了多种控制结构,包括条件语句(如...

Global site tag (gtag.js) - Google Analytics