相关疑难解决方法(0)

如何确定泛型类?

我正在创建一个泛型类,并且在其中一个方法中我需要知道当前使用的泛型类的Class.原因是我调用的方法之一将此作为参数.

例:

public class MyGenericClass<T> {
  public void doSomething() {
    // Snip...
    // Call to a 3rd party lib
    T bean = (T)someObject.create(T.class);
    // Snip...
  }
}
Run Code Online (Sandbox Code Playgroud)

显然,上面的示例不起作用并导致以下错误:类型参数T的非法类文字.

我的问题是:有人知道一个很好的选择或解决方法吗?

java generics

60
推荐指数
3
解决办法
6万
查看次数

Java默认方法-获取子类的类型

我有一个接口,我想在其中提供默认方法来序列化继承的类。我使用一个JsonSerializer<T>类来进行序列化。

该方法如下所示:

public interface A
{
    public default String write()
    {
        new JsonSerializer</*Inherited class type*/>();
        // I've tried new JsonSerializer<this.getClass()>();  - Doesn't work

    }
}

public class AX implements A
{
}
Run Code Online (Sandbox Code Playgroud)

所以当我实例化AX时,我想使用write方法来序列化AX

AX inst = new AX();
String instSerialized = inst.write();
Run Code Online (Sandbox Code Playgroud)

我需要将 AX 的类型传递给 A 中的 write 方法。这可能吗?

java generics default-method

6
推荐指数
1
解决办法
3450
查看次数

标签 统计

generics ×2

java ×2

default-method ×1