T readObjectData(... Class type)"?-6ren"> T readObjectData(... Class type)"?-我有这个 Java 代码。 public T readObjectData(ByteBuffer buffer, Class type) { ... T retVal = (T) summaries-6ren">
gpt4 book ai didi

java - 如何在 Java 中解释 "public T readObjectData(... Class type)"?

转载 作者:IT老高 更新时间:2023-10-28 21:01:55 26 4
gpt4 key购买 nike

我有这个 Java 代码。

public <T> T readObjectData(ByteBuffer buffer, Class<T> type) {
...
T retVal = (T) summaries;
return retVal;

如何解释这段代码?为什么我们需要public <T> T而不是 public T ?

如何将参数赋予第二个参数(Class<T> type)?

最佳答案

这声明了 readObjectData方法泛型,有一个类型参数,T .

public <T> ...

那么返回类型是T .

... T readObjectData(...

没有首字母 <T> ,即泛型类型声明,符号T将是未定义的。

在参数列表中,Class<T> type是参数之一。因为返回类型和这个参数都引用了T ,这样可以确保如果您传入 Class<String> , 那么它会返回一个 String .如果您传入 Class<Double> , 那么它会返回一个 Double .

要传入参数,传入任意Class对象,例如String.class .

关于java - 如何在 Java 中解释 "public <T> T readObjectData(... Class<T> type)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15888551/

26 4 0