精华内容
参与话题
问答
  • 静态方法使用泛型

    2019-11-12 17:07:46
    静态方法使用泛型 public class Utils { public static<T,V> void method(MyClass1<T> t,MyClass2<V> v){ //... }; } 类Utils上不需要指定泛型; 调用时,不需要指定泛型,可以自动匹配...

    静态方法使用泛型

    public class Utils {
        public static<T,V> void method(MyClass1<T> t,MyClass2<V> v){
            //...
        };
    }

    类Utils上不需要指定泛型; 

    调用时,不需要指定泛型,可以自动匹配(前提是实参的类型和泛型都是正确匹配的,否则会报错),如:

    Utils.method(arg1,arg2);

    展开全文
  • java静态方法使用泛型

    万次阅读 2018-07-23 15:13:57
    用法 import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; ...public class StaticMethod { ... public static void main(String[] args) { ...

    用法

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.HashSet;
    import java.util.HashMap;
    import java.util.List;
    
    public class StaticMethod {
    
        public static void main(String[] args) {
            System.out.println(test("aaaaa"));  //aaaaa  基本用法
            System.out.println(test1("aa").get(0).equals("aa"));    //true  用于内部包装
            System.out.println(test1(new HashMap()).get(0).put("", ""));    //比上一句更能说明用处的例子
            System.out.println(test2(new HashSet(), Collection.class).size());  //0 用于强制转换类型
            System.out.println(test3("bbbbb")); //bbbbb   装神弄鬼
            
            HashSet ss = test(new HashSet());	//省去了强制转换类型
            ss.size();
            
            test(new HashSet()).size();		//可以看出与句柄无关,是静态方法自动做出的判断
            
            //在方法中自动进行强制类型转换,语法很特别。
            //(这个语句毫无疑问会报错,只是subList这个ArrayList有,而HashSet没有的方法能更明确的展示这个语法)
            test2(new HashSet(), ArrayList.class).subList(1, 1);
        }
    
        
        public static<T> T test(T obj){
            return obj;
        }
    
        public static<T> List<T> test1(T obj){
            List<T> list = new ArrayList();
            list.add(obj);
            return list;
        }
    
        public static<T> T test2(Object str, Class<T> obj){
            return (T)str;
        }
        
        public static<T> T test2(Object obj){
            return (T)obj;
        }    
    
        public static<T, A, B, C, D> B test3(B obj){
            return obj;
        }
    
    }
    

    ps:以上都属于泛型的用法,把static去掉也同样可用。

    展开全文
  • ## 泛型类 与泛型方法 混合使用 ## 静态方法 与 泛型 package javabasis.fanxing; import org.junit.Test;...静态方法使用泛型 */ class FanXingClassAndMethod { private T param; public F...
    ## 泛型类 与泛型方法 混合使用
    
    ## 静态方法 与 泛型

    package javabasis.fanxing;

    import org.junit.Test;

    /*

    • 泛型类与泛型方法的混合使用
      1. 泛型类对应的方法 及 泛型方法区别
      1. 参数定义名称
      1. 静态方法使用泛型
    • */
      class FanXingClassAndMethod {

      private T param;

      public FanXingClassAndMethod(T param) {
      this.param = param;
      }

      //泛型类中的方法,非泛型方法
      public T getParam11(T param) {
      this.param = param;
      return param;
      }

      //泛型方法
      public T getParam21(T param) {

        return param;

      }

      //此方法用于对比, 编译器直接会报异常,因为此方法是依附于泛型类定义的,没有K类型,只有T类型
      // public K getParam12(K param) {
      // return param;
      // }

      //泛型方法 可以定义K不受泛型类影响
      public K getParam22(K param) {

        return param;

      }

      //静态方法 使用泛型,只能声明为泛型方法,无法依托于泛型类,因为静态方法早于类编译
      public static T staticMethod(T param) {
      return param;
      }
      }

    public class NO3FanXing1 {

    @Test
    public void test() {
        /*
        * 1. 泛型类中的方法与 泛型方法比较
        * */
    
        FanXingClassAndMethod<Integer> fanXingClassAndMethod = new FanXingClassAndMethod<>(456);
        //泛类中的方法,类型限制为Integer,无法是String
        fanXingClassAndMethod.getParam11(454545);

    // fanXingClassAndMethod.getParam11("dsfadfsf");

        //泛型类方法则不受限制
        fanXingClassAndMethod.getParam21("123123213");
    
    }

    }

    转载于:https://www.cnblogs.com/yaoxublog/p/10944608.html

    展开全文
  • 静态方法泛型

    2019-10-24 16:21:55
    静态方法有一种情况需要注意一下,那就是在类中的静态方法使用泛型:静态方法无法访问类上定义的泛型;如果静态方法操作的引用数据类型不确定的时候,必须要将泛型定义在方法上。 即:如果静态方法要使用泛型的话,...

    静态方法有一种情况需要注意一下,那就是在类中的静态方法使用泛型:静态方法无法访问类上定义的泛型;如果静态方法操作的引用数据类型不确定的时候,必须要将泛型定义在方法上。

    即:如果静态方法要使用泛型的话,必须将静态方法也定义成泛型方法 。

     

    public class StaticGenerator<T> {
        ....
        ....
        /**
         * 如果在类中定义使用泛型的静态方法,需要添加额外的泛型声明(将这个方法定义成泛型方法)
         * 即使静态方法要使用泛型类中已经声明过的泛型也不可以。
         * 如:public static void show(T t){..},此时编译器会提示错误信息:
              "StaticGenerator cannot be refrenced from static context"
         */
        public static <T> void show(T t){
    
        }
    }
    展开全文
  • Java静态方法与非静态方法泛型

    千次阅读 2019-06-03 16:01:32
    Java中,非静态方法可以使用类的泛型,也可以定义自己的泛型静态方法由于随着类的加载而加载,不能访问类的泛型(因为在创建对象的时候才确定),因此必须定义自己的泛型类型。 详细请参考:...
  • Java静态方法泛型

    2020-11-26 13:47:55
    泛型类中的静态方法不能使用类的泛型而应该将该方法定义为泛型方法。 在java中泛型只是一个占位符,必须在传递类型后才能使用。就泛型而言,类实例化时才能正真的的传递类型参数,由于静态方法的加载先于类的实例化...
  • JAVA(二十一)——泛型的概述 不知不觉JAVA之旅已经写到21篇了,不得不感叹当初自己坚持要重学一遍JAVA的信念,中途也算是非常的痛苦吧,不过熬到现在,已经算是有点效果了,继续加油,估计三十来篇就能结束自己的...
  • 1、泛型概述 import java.util.*; /* 泛型:JDK1.5版本以后出现新特性。...在使用java提供的对象时,什么时候写泛型呢? 通常在集合框架中很常见, 只要见到<>就要定义泛型。 其实<> 就是用来接收类
  • 泛型:jdk1.5后的新特性,用于解决安全问题,是一个安全机制。...在使用Java中,什么时候使用泛型呢? 通常在集合框架中很常见,只要见到就是用来接收类型的。 当使用集合时,将集合中要存储的数据类型作为参数传
  • JAVA 泛型方法 和 静态方法泛型

    万次阅读 2013-03-16 13:00:15
    泛型类定义的泛型 在整个类中有效 如果被方法使用 那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定 为了让不同方法可以操作不同类型 而且类型还不确定 那么可以将泛型定义在方法上 ...
  • JAVA之旅(二十一)——泛型的概述以及使用泛型类,泛型方法静态泛型方法泛型接口,泛型限定,通配符 不知不觉JAVA之旅已经写到21篇了,不得不感叹当初自己坚持要重学一遍JAVA的信念,中途也算是非常的...
  • 主要介绍了Java静态泛型使用方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

空空如也

1 2 3 4 5 ... 20
收藏数 737
精华内容 294
关键字:

静态方法使用泛型