通用Java代码难以理解?
我找到了一个表示Java泛型功能的方法,但是我很难阅读和理解它。如何理解下面的Java代码行通用Java代码难以理解?,java,generics,Java,Generics,我找到了一个表示Java泛型功能的方法,但是我很难阅读和理解它。如何理解下面的Java代码行 public ContractValidator T validate(Validator,F object)这一行代码所在的段落解释说,过多使用泛型会使代码变得复杂。这句话的目的是要说明理解起来有多难 无论如何,这并不是泛型的一个好例子,事实上,我认为这是不正确的。在你写这行代码的那一段解释说,过多地使用泛型会使你的代码变得复杂。这句话的目的是要说明理解起来有多难 无论如何,它并不意味着是泛型的一个好
public ContractValidator T validate(Validator,F object)
这一行代码所在的段落解释说,过多使用泛型会使代码变得复杂。这句话的目的是要说明理解起来有多难
无论如何,这并不是泛型的一个好例子,事实上,我认为这是不正确的。在你写这行代码的那一段解释说,过多地使用泛型会使你的代码变得复杂。这句话的目的是要说明理解起来有多难
无论如何,它并不意味着是泛型的一个好例子,事实上,我认为它是不正确的。好吧,我可以从中体会到一些困惑:泛型是破的。我的意思并不是说“它们对了解泛型的人来说毫无意义”;我的意思是他们没有编译。所以不要把他们说的话当作字面上的意思;这只会让你更加困惑 让我们从显而易见的开始。去掉所有的泛型,剩下的就是感知到的原始类型
public ContractValidator validate(Validator, Object object)
我删除了模棱两可的双返回,因为它没有多大意义。我还假设他们想要一个变量作为第一个参数
public ContractValidator validate(Validator validator, Object object) {
return null;
}
所以我们得到的是一些验证器
和一些对象
进入这个验证
方法,我们从中得到的是一个契约验证器
这太棒了,除了我们可以验证任何东西(理论上)。如果我们的验证器
被类型绑定到要验证的特定对象,该怎么办
public <T extends Contract> ContractValidator validate(Validator<T> validator, Object object) {
return null;
}
这就是我不同意这个设计的地方。他们打算(出于某种原因)拥有一个未绑定的泛型类型;大概是为了让你验证任何东西。但我不知道这种类型有什么用途——它可以是任何东西
它是通过写作来完成的:
public <T extends Contract, F> ContractValidator<T> validate(Validator<T> validator, F object) {
return null;
}
公共契约验证程序验证(验证程序验证程序,F对象){
返回null;
}
现在,我写了所有这些来有效地表明泛型是可以理解的,前提是您所展示的示例能够合理地编译并具有一定的语义意义。在大多数情况下,如果要使用泛型,那么这样做是因为您正在尝试创建一些多态方法,或者您正在尝试创建一个多态容器
关于泛型;Java跟踪从未让我在这一点上出错。好吧,我可以从中体会到一些困惑:泛型被打破了。我的意思并不是说“它们对了解泛型的人来说毫无意义”;我的意思是他们没有编译。所以不要把他们说的话当作字面上的意思;这只会让你更加困惑 让我们从显而易见的开始。去掉所有的泛型,剩下的就是感知到的原始类型
public ContractValidator validate(Validator, Object object)
我删除了模棱两可的双返回,因为它没有多大意义。我还假设他们想要一个变量作为第一个参数
public ContractValidator validate(Validator validator, Object object) {
return null;
}
所以我们得到的是一些验证器
和一些对象
进入这个验证
方法,我们从中得到的是一个契约验证器
这太棒了,除了我们可以验证任何东西(理论上)。如果我们的验证器
被类型绑定到要验证的特定对象,该怎么办
public <T extends Contract> ContractValidator validate(Validator<T> validator, Object object) {
return null;
}
这就是我不同意这个设计的地方。他们打算(出于某种原因)拥有一个未绑定的泛型类型;大概是为了让你验证任何东西。但我不知道这种类型有什么用途——它可以是任何东西
它是通过写作来完成的:
public <T extends Contract, F> ContractValidator<T> validate(Validator<T> validator, F object) {
return null;
}
公共契约验证程序验证(验证程序验证程序,F对象){
返回null;
}
现在,我写了所有这些来有效地表明泛型是可以理解的,前提是您所展示的示例能够合理地编译并具有一定的语义意义。在大多数情况下,如果要使用泛型,那么这样做是因为您正在尝试创建一些多态方法,或者您正在尝试创建一个多态容器
关于泛型;Java跟踪从未让我在这方面出错。阅读一些Java教程/书籍等将是一个好的开始……你到底不明白什么?从这里开始:这行中可能存在重复的错误:有两种返回类型
ContractValidator
和t
,而不是一种返回类型和类型Validator
的参数丢失。阅读一些java教程/书籍等将是一个好的开始…您到底不明白什么?从这里开始:这行中有错误的可能重复:有两个返回类型ContractValidator
和t
,而不是一个返回类型和缺少类型验证程序的参数。非常感谢您提供了非常广泛且绝对奇妙的100%答案。我实际上没有问题,因为你提供了有用的链接+10块给你!非常感谢您提供了非常广泛和绝对精彩的100%答案。我实际上没有问题,因为你提供了有用的链接+10块给你!