扩展java方法签名中返回类型中的关键字

扩展java方法签名中返回类型中的关键字,java,Java,我正在检查密码 我发现了许多类似于此的方法签名: public CMD getCommand(String commandID) 此签名与以下签名有何区别: public命令getCommand(String commandID) 我能理解的唯一合乎逻辑的原因是进行类型检查。但我仍然无法从设计的角度找出这样做的原因 在java方法的返回类型中使用和扩展还有其他原因吗 区别有三倍: 返回的类型是类型化的(不是原始类型) 返回的类型可以是特定的子类 该方法可以访问K、V和C类型 作为一个类型化方法,

我正在检查密码

我发现了许多类似于此的方法签名:

public CMD getCommand(String commandID)

此签名与以下签名有何区别:

public命令getCommand(String commandID)

我能理解的唯一合乎逻辑的原因是进行类型检查。但我仍然无法从设计的角度找出这样做的原因


在java方法的返回类型中使用和扩展还有其他原因吗

区别有三倍:

  • 返回的类型是类型化的(不是原始类型)
  • 返回的类型可以是特定的子类
  • 该方法可以访问K、V和C类型
  • 作为一个类型化方法,java可以推断类型

    所有这些都意味着这将编译(无强制转换):

    编译器将根据结果分配给的变量类型推断(即计算)方法的类型

    此外,可以使用以下语法显式指定子类:

    Command<String, Integer, String> x = ContainingClass.<CommandSubClass<String, Integer, String>>getCommand(commandID);
    
    Command x=ContainingClass.getCommand(commandID);
    
    SomeTypedSubClassOfCommand x = getCommand(commandID);
    
    Command<String, Integer, String> x = ContainingClass.<CommandSubClass<String, Integer, String>>getCommand(commandID);