来自正式的JavaJDK1。导游,我得到了这句话,但我不明白它是怎么起作用的。有人能解释一下吗?换句话说,当菱形传递空字符串时,它如何推断整数类型?
MyClass<Integer> myObject = new MyClass<>("");
在本例中,编译器为泛型类MyClass的形式类型参数X推断类型整数。它为这个泛型类的构造函数的形式类型参数T推断类型字符串。
引号表示类中有一个泛型构造函数,它声明了自己的类型参数。这类似于创建泛型方法的方式。构造函数的类型参数是从实例化类时传递的参数推断出来的。
下面是一个与该调用相匹配的类的简单版本:
class MyClass<T> {
<S> MyClass(S arg) {
System.out.println(arg);
}
}
现在,当您在代码中实例化类时,根据您传递的参数,类型参数T
被推断为Integer
,构造函数中的类型参数S
被推断为String
。
至于菱形运算符,从Java7开始,如果您已经将引用分配给引用,则在创建泛型类的实例时不需要给出类型参数。类型参数将从与引用类型一起使用的参数中推断出来,这里是整数
。
Integer
部分是从构造函数调用结果的使用中推断出来的-它被分配给MyClass类型的变量
基本上,如果类型参数在使用表达式的上下文中是明确的(其中“clear”当然意味着“遵循精确的规则”),那么编译器将推断它。
两者的区别是什么 和 当我创建一个新的ArrayList时,钻石操作员是必要的吗?
我正在处理一个Python文件,它输入一个包含日文字符(UTF-8)的文本文件,获取一些文本,并将其写入一个新的UTF-8文本文件。 我遇到的问题是,由于某种原因,每当日语字符だ出现在原始输入文件中的一行末尾时,它就会在输出文件中显示为菱形问号。 行尾之前的だ实例读起来很好,原始输入文件读起来也很好,即使它在行尾。
我在使用SplFileObject阅读的文本中遇到了替换字符-菱形问号的问题。这个字符已经存在于我的文本文件中,因此无法将其转换为其他编码。我决定使用preg_match()搜索它,但问题是PHP找不到它的任何出现。PHP可能将其视为与不同的字符。我不想只是从文本中删除这个字符,所以这就是我想使用preg_match()搜索它的原因。有什么方法可以在PHP中匹配这个字符吗? 我尝试使用正则表达式行
问题内容: 我有一个类型为Patient_class的arraylist,并且用黄色下划线标出了arraylist类型,IDE提到了“新表达式中的冗余类型参数(使用菱形运算符)”。 我的问题是:我应该改用菱形运算符吗?是必须的吗?将记录存储到arraylist时,是否会丢失数据或出现其他任何问题? 这是我的数组列表: 老实说,我不知道钻石经营者实际上是什么。 问题答案: Diamond运算符的目的
本文向大家介绍Python打印“菱形”星号代码方法,包括了Python打印“菱形”星号代码方法的使用技巧和注意事项,需要的朋友参考一下 本人是一名python初学者,刚刚看到一道有趣的python问题,“用python如何在编译器中打印出菱形图案?” 因此决定尝试一下,代码不多,仅供参考。 代码 运行结果:
我正在尝试使用diamond运算符,但收到以下消息: Source 1.5中不支持diamond运算符(使用Source 7或更高版本启用diamond运算符) 它在Android的netbeans中是可以修复的吗?