我不明白T如何使用Integer和String。如此处显示功能中所示,T同时处理整数和字符串。该代码如何工作?
class firstBase {
<T> void display(T give_num, T give_String) {
System.out.println("The given number is = "
+ give_num + " The given String is = " + give_String);
System.out.println("The class of given number is = "
+ give_num.getClass() +
" The class of given_String is = "+give_String.getClass());
}
}
public class testanonymous {
public static void main(String[] args) {
firstBase fb = new firstBase();
fb.display(100, "xyz");
}
}
参考方案
您正在调用该方法的原始形式,该形式基本上等于
void display(Object give_num, Object give_String)
在这里,您提供的两个参数都合适,因为100
自动装箱到Integer
(这是Object
的子类),而“xyz”是String
(这是Object
的子类)
要正确使用泛型,您必须执行以下操作:
fb.<String>display(100, "xyz");
要么
fb.<Integer>display(100, "xyz");
在这两种情况下,您都会注意到代码不会编译,因为编译器会在运行时意识到您打算用T
/ Integer
替换String
的意图,但是参数类型不是所提供的相同类型。
This question already has answers here: Closed 7 years ago. Possible Duplicate: What does >> and >>> mean in Java?我在一些Java代码中遇到了一些陌生的符号,尽管代码可以正确编译和运行,但对于括号在此代码中的作用却感…
菱形运算符<>是否等于<?> - java我在util.TreeSet类中发现,其中一个构造函数正在使用具有空泛型类型的新TreeMap调用另一个构造函数。 public TreeSet(Comparator<? super E> comparator) { this(new TreeMap<>(comparator)); } new TreeMap<>是什么意思…
Java Applet的URLConnection与PHP无效 - java我已经研究了Oracle文档和示例,但仍然无法正常工作。我有一个Java Applet,它只是尝试使用URLConnection和OutputStreamWriter通过POST将文本字段发送到PHP脚本。 Java方面似乎工作正常,没有引发异常,但是PHP在我的页面上未显示任何输出。我是PHP新手,因此请耐心等待。这是相关的Java部分: try { UR…
休眠映射<键,设置<值>> - java我有以下表格:@Entity @Table(name = "events") Event --id --name @Entity @Table(name = "state") State --id --name @Entity @Table(name = "action") Action --id …
页面加载而不是提交时发生struts验证 - java请原谅我;我对Struts有点陌生。我遇到一个问题,即页面加载而不是我实际提交表单时发生了验证。我整天都在论坛上搜寻和搜寻,没有任何运气。我显然做错了一些事情,应该很容易确定,但是我还没有发现问题所在。这是我的struts.xml的片段:<action name="*Test" method="{1}" clas…