我试图指定一个泛型类必须是一个数组,或者更好的是一个原始数组.到目前为止,这是我的工作:
interface Foo<T> {
void process( T data );
}
public class Moo implements Foo<int[]> {
void process( int[] data ) {
// do stuff here
}
}
Run Code Online (Sandbox Code Playgroud)
这是完全有效的Java代码并且有效,因为原始数组扩展了Object.请注意,这个问题与我一直在寻找的所有其他Java数组通用问题完全不同.在那种情况下,人们希望用泛型类型创建一个数组.
问题是类型T可以是扩展Object的任何东西.我想要的是做一些像:
<T extends ONLY ARRAYS>
Run Code Online (Sandbox Code Playgroud)
要么
<T extends ONLY PRIMITIVE ARRAYS>.
Run Code Online (Sandbox Code Playgroud)
那可能吗?
编辑:最终目标是对传入的数组类型添加编译时检查.现在可以传入任何旧对象,它将编译得很好.只有在抛出类转换异常时才会在运行时发现错误.事实上,这是Java中泛型的全部要点,以增加更强大的编译时类型检查.
我将2个网络摄像头连接到计算机,它被列在/ dev文件夹中:/ dev/video0; 的/ dev/VIDEO1.
你能帮我写C代码来获取输入的网络摄像头序列号:/ dev/video [0; 1]