2016-10-15 52 views
-9

我正在学习Java和一个相当新的开发人员的代码,所以我很抱歉,如果这个问题是漫无目标和结构不良。我想知道为什么在声明泛型方法的类型时必须使用'new'关键字。例如,当调用一个通用的方法时,我被告知我应该这样写,但是为什么找不到任何解释。Java - 为什么在调用泛型方法时需要'new'关键字?

类内:

公共无效方法名(T类型名)

主程序:

ClassName.MethodName(新类型名());

预先感谢您!

+2

这与泛型没有任何关系。如果你需要一个'Object',你还需要一个'Object'的实例来传入。 – tkausl

+0

你能告诉我这与泛型无关吗?我直接引用了我目前正在查看的有关“通用方法”的学习来源。显然,这不是完整的代码片段,只是我认为需要提供的基本知识来帮助我理解为什么参数中需要“新”。 –

+0

因为您要在“主程序”行中创建一个对象,所以不要声明它。基本的Java规则声明您需要使用new关键字来执行此操作。泛型没有什么不同,所以你的问题与泛型没有任何关系。此外,您的代码看起来不像编译的代码,因为您似乎试图调用实例方法,就好像它是静态方法一样。 –

回答

2

无论通用还是没有,你的方法需要一个对象的引用,所以这就是为什么你用关键字new

实例也应该new T()因为这是你的方法签名的类型。 TypeName是你选择的参数的名称...

相关问题