Java 为什么只能为静态方法定义泛型类型?
《Java编程导论》一书说,“可以为静态方法定义泛型类型。” 为什么实例方法不能是泛型的?实例方法可以是泛型的。下面的代码是用Java5和更高版本编译的。如您所见,我以相同的方式定义了泛型实例方法和泛型静态方法Java 为什么只能为静态方法定义泛型类型?,java,generics,Java,Generics,《Java编程导论》一书说,“可以为静态方法定义泛型类型。” 为什么实例方法不能是泛型的?实例方法可以是泛型的。下面的代码是用Java5和更高版本编译的。如您所见,我以相同的方式定义了泛型实例方法和泛型静态方法 package com.company; public class Generics { public <T> T returnAGenericType(T returnThisOne) { return returnThisOne; }
package com.company;
public class Generics {
public <T> T returnAGenericType(T returnThisOne) {
return returnThisOne;
}
public static <T> T returnAGenericTypeStatic(T returnThisOne) {
return returnThisOne;
}
}
package.com公司;
公共类泛型{
公共T ReturnAgencyType(T returnThisOne){
把这个还给我;
}
公共静态T ReturnAgencyTypeStatic(T returnThisOne){
把这个还给我;
}
}
ArrayList::toArray
、ArrayList::get
和ArrayList::set
都是具有泛型类型参数的实例方法的示例。实例方法可以是泛型的。下面的代码是用Java5和更高版本编译的。如您所见,我以相同的方式定义了泛型实例方法和泛型静态方法
package com.company;
public class Generics {
public <T> T returnAGenericType(T returnThisOne) {
return returnThisOne;
}
public static <T> T returnAGenericTypeStatic(T returnThisOne) {
return returnThisOne;
}
}
package.com公司;
公共类泛型{
公共T ReturnAgencyType(T returnThisOne){
把这个还给我;
}
公共静态T ReturnAgencyTypeStatic(T returnThisOne){
把这个还给我;
}
}
ArrayList::toArray
、ArrayList::get
和ArrayList::set
都是具有泛型类型参数的实例方法的示例。实例方法可以是泛型的。下面的代码是用Java5和更高版本编译的。如您所见,我以相同的方式定义了泛型实例方法和泛型静态方法
package com.company;
public class Generics {
public <T> T returnAGenericType(T returnThisOne) {
return returnThisOne;
}
public static <T> T returnAGenericTypeStatic(T returnThisOne) {
return returnThisOne;
}
}
package.com公司;
公共类泛型{
公共T ReturnAgencyType(T returnThisOne){
把这个还给我;
}
公共静态T ReturnAgencyTypeStatic(T returnThisOne){
把这个还给我;
}
}
ArrayList::toArray
、ArrayList::get
和ArrayList::set
都是具有泛型类型参数的实例方法的示例。实例方法可以是泛型的。下面的代码是用Java5和更高版本编译的。如您所见,我以相同的方式定义了泛型实例方法和泛型静态方法
package com.company;
public class Generics {
public <T> T returnAGenericType(T returnThisOne) {
return returnThisOne;
}
public static <T> T returnAGenericTypeStatic(T returnThisOne) {
return returnThisOne;
}
}
package.com公司;
公共类泛型{
公共T ReturnAgencyType(T returnThisOne){
把这个还给我;
}
公共静态T ReturnAgencyTypeStatic(T returnThisOne){
把这个还给我;
}
}
ArrayList::toArray
,ArrayList::get
和ArrayList::set
都是具有泛型类型参数的实例方法的示例。可能的@MaximillianLaumeister重复项您建议的可能重复项并不能回答问题。同意-这是一个完全不同的问题。@MaximillianLaumeister可能的重复项你建议的复制品不能回答问题。同意-这是一个完全不同的问题。@MaximillianLaumeister的可能复制品你建议的可能复制品不能回答问题。同意-这是一个完全不同的问题。@MaximillianLaumeister的可能复制品你建议的可能复制品不能回答问题回答这个问题。同意-这是一个完全不同的问题。哦,这本书使用了Java7。谢谢Java7也是如此。我将很快更新我的答案。出于好奇,为什么他们只为静态方法定义泛型类型(在java 7中)。我只是说我只在java 8中尝试过它。我现在已经在Java5、6、7和8中尝试过了,但效果都一样。在任何版本的Java中,都绝对没有理由只为静态方法定义泛型类型。事实上,它可以。这并不是说你不能为实例方法做这件事。哦,这本书使用了Java7。谢谢Java7也是如此。我将很快更新我的答案。出于好奇,为什么他们只为静态方法定义泛型类型(在java 7中)。我只是说我只在java 8中尝试过它。我现在已经在Java5、6、7和8中尝试过了,但效果都一样。在任何版本的Java中,都绝对没有理由只为静态方法定义泛型类型。事实上,它可以。这并不是说你不能为实例方法做这件事。哦,这本书使用了Java7。谢谢Java7也是如此。我将很快更新我的答案。出于好奇,为什么他们只为静态方法定义泛型类型(在java 7中)。我只是说我只在java 8中尝试过它。我现在已经在Java5、6、7和8中尝试过了,但效果都一样。在任何版本的Java中,都绝对没有理由只为静态方法定义泛型类型。事实上,它可以。这并不是说你不能为实例方法做这件事。哦,这本书使用了Java7。谢谢Java7也是如此。我将很快更新我的答案。出于好奇,为什么他们只为静态方法定义泛型类型(在java 7中)。我只是说我只在java 8中尝试过它。我现在已经在Java5、6、7和8中尝试过了,但效果都一样。在任何版本的Java中,都绝对没有理由只为静态方法定义泛型类型。事实上,它可以。这并不是说你不能为实例方法做这件事。