以下是有关如何制作 java 泛型类以将单个项目附加到数组的片段。如何使 appendToArray 成为静态方法。将静态添加到方法签名会导致编译错误。
public class ArrayUtils<E> {
public E[] appendToArray(E[] array, E item) {
E[] result = (E[])new Object[array.length+1];
result[array.length] = item;
return result;
}
}
原文由 Chris Johnson 发布,翻译遵循 CC BY-SA 4.0 许可协议
您唯一能做的就是将您的签名更改为
重要细节:
返回值之前的泛型表达式总是引入(声明)一个新的泛型类型变量。
此外,类型(
ArrayUtils
)和静态方法(appendToArray
)之间的类型变量永远不会相互干扰。So, what does this mean: In my answer
<E>
would hide theE
fromArrayUtils<E>
if the method wouldn’t bestatic
. AND<E>
与来自ArrayUtils<E>
的E
--- 无关。为了更好地反映这一事实,更正确的答案是: