泛型问题怎么解决


为什么有的学生对象定义了<String>泛型,还可以传入123int类型,有的学生对象定义了<Integer>泛型还可以传入float、String类型,(代码中的show3()方法) ????????????求大神解答。



package com.vdate.day18;

/**

 * 泛型定意在方法上

 * 

 * 泛型是个类,只能接受引用类型,不能传int这些基本数据类型,但是可以传他的包装类,integer

 *

 */

public class demo3 {


public static void main(String[] args) {


Student2<String> s1 = new Student2<String>();

s1.show("hhhh");

   //s1.show(123);//

Student2<Integer> s2 = new Student2<Integer>();

// s2.show("hhhh");

s2.show(123);//

s2.show2("dsda");

s2.show2(123F);

Student2<Integer> s3 = new Student2<Integer>();

s2.show3("dsda");

s2.show3(123F);

s2.show3(123);

}


}

class Student2<E>{

int age;

//泛型定义在方法上

public void show(E e) {

System.out.println("show=" + e);

}

public void show2(Object o) {

System.out.println("show=" + o);

}

//定义在方法上

public <A> void show3(A a) {

System.out.println("show=" + a);

}

}


qq_雨过之后_1
浏览 1289回答 1
1回答

堇延未七

首先看show2方法,它的入参是一个Object的对象,万物都是Object的对象,所以不管传进来的是字符串还是整数,都会转化为Object对象输出;show3方法中入参是A类型,和泛型E是没有关系的,可以传入任意类型
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java