Java 调用泛型/参数化方法时,是否有方法强制提供类型参数?
假设我有这样一个类和方法:Java 调用泛型/参数化方法时,是否有方法强制提供类型参数?,java,generics,Java,Generics,假设我有这样一个类和方法: 公共类示例{ private final Map stuff=new HashMap(); 公共T getValue(字符串键){ 返回(T)个东西。获取(键); } } 是否可以强制编写调用getValue()的代码的人显式地为方法调用提供类型见证 Example-Example=new-Example(); 布尔resultWithParameter=example.getValue(“some_键”); 我想做的是在调用方法时总是需要参数。有办法吗?我知道我
公共类示例{
private final Map stuff=new HashMap();
公共T getValue(字符串键){
返回(T)个东西。获取(键);
}
}
是否可以强制编写调用getValue()
的代码的人显式地为方法调用提供类型见证
Example-Example=new-Example();
布尔resultWithParameter=example.getValue(“some_键”);
我想做的是在调用方法时总是需要参数。有办法吗?我知道我总是可以添加一个
类
参数,但我正在探索其他选项。没有办法强制执行它。下面是方法调用的结构
具体来说,您的示例引用了此示例
Primary . [TypeArguments] Identifier ( [ArgumentList] )
example . <Boolean> getValue ( "some_key" );
Primary。[TypeArguments]标识符([ArgumentList])
实例getValue(“some_键”);
如果您不熟悉,最重要的部分是:
产品右侧的语法[x]
表示零或零
x的一个实例。也就是说,x
是可选符号
因此,当
[TypeArguments]
(类型见证)适用时,它总是可选的;无法强制执行它的存在。这被称为类型见证,我以前从未听说过“类型见证”这个术语,因此我希望您能解释一下这个术语。@markspace@markspace来自Oracle教程,我以前从未听说过它被称为“类型见证”。今天我学到了一些新东西。
Primary . [TypeArguments] Identifier ( [ArgumentList] )
example . <Boolean> getValue ( "some_key" );