问题描述
- Java 字符串确认泛型类型
-
原来是这样的:Map aaa = new HashMap();
现在是这样的:
String type = "String";
Map aaa = new HashMap();问题是:
do_something(type)这个东西怎么写,以及返回什么类型?
解决方案
完全看不懂问题是要做什么
解决方案二:
这跟泛型有什么关系?方法的返回值看需要什么就可以返回什么啊。跟Map也没什么关系,问题说的不够清楚。
解决方案三:
定义泛型方法或者泛型类格式是固定的,跟其它无关。不会因为你输入的是啥而改变它的定义格式:
泛型方法:
public <T> T do_something(T t){
return t;//返回值也是泛型
}
public <T> String do_something(T t, int num){
return "";//返回值是字符串
}
泛型类:
public class Test<T> {
}
如果你想通过字符串type的内容来限制输入类型的话,你可以通过反射获取type字符串对应的类型,跟我们传到方法中的类型相比对,
一致的话就说明是我们type允许传入的类型,不一致的话,就说明不是我们允许传入的值。
解决方案四:
问题问的不好。前后不搭
首先 那个Map干什么用的。
如果说是泛型本身使用的疑问我来解答下:
1--重点泛型不改变继承层次,它完全是一个占位符
所以你写 Map aaa = new HashMap();是完全可以的
2--泛型只是约束你使用它进行取值的时候。
也就是你具体给容器传入什么样的参数,得到什么样的值
3--对于返回值和参数处可以不考虑泛型
时间: 2024-12-20 22:02:47