bear_0X0000
2018-01-20 11:27
采纳率: 60%
浏览 2.0k
已采纳

Java中 非泛型类 定义泛型方法有什么用?

Arrays类是非泛型的,但是有一个泛型方法
public static Stream stream(T[] array)

请纹正确的打开方式是怎样的?

大家都理解错了我的意思了

我问的是:

非泛型类里面定义泛型方法的意义是什么,而不是你们告诉我,要让类也是泛型。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • wulixiaozi0595 2018-01-20 13:58
    已采纳

    Java的泛型,只是为了程序员编写方便,以及在编译的时候做类型检查,在实际运行当中,会把泛型的印记擦掉,相当于一个Object类型。

    同样,泛型方法,也只是为了程序员编写的方便(可以不用做对象转化),以及编译时类型检查而已,运行时和实际的Object类型没有任何差别。

    本例中,你创建的对象,应该是没有带泛型的,实际在调用方法时再带:
    1. 对象初始化:new MyTest()。
    2. 方法调用:MyTest test = new MyTest(); test.fun(1);

    点赞 打赏 评论
  • wumichu123 2018-01-20 11:43

    对于构造方法你没有泛型,Public class MyTest {

    }

    点赞 打赏 评论
  • 路漫漫兮其修远兮 2018-01-20 11:47

    你的类并没有声明泛型,你应该是new MyTest(),如果你要是想要你的这种方式需要改为

     public class <T> MyTest {
    
        public <T>T fun(T t) {
                return t;
        }
    }
    
    点赞 打赏 评论
  • robert-von 2018-01-20 15:19

    new MyTest()是创建新的对象,这个过程默认调用不带参数的构造方法MyTest ();
    而这个构造方法你没有定义,于是自动被创建了,这个自动被创建的构造方法没有泛型。
    你定义泛型的方法fun()只是一个可调用的方法,和new MyTest()没有关系。
    fun()方法实际上没有被调用。

    点赞 打赏 评论
  • qq_35740099 2018-01-21 02:58

    这个构造方法你没有定义,于是自动被创建了

    点赞 打赏 评论
  • 微笑点燃希望 2018-01-21 03:03

    缺构造方法 自动构建了

    点赞 打赏 评论

相关推荐 更多相似问题