相关疑难解决方法(0)

如何实现List <MyType>?

我怎样才能让这种东西起作用?我可以检查是否,(obj instanceof List<?>)但不是(obj instanceof List<MyType>).有没有办法可以做到这一点?

java generics

75
推荐指数
5
解决办法
8万
查看次数

Java类型擦除擦除我的泛型类型?

我认为java擦除会在编译时擦除泛型类型,但是当我自己测试它时,我意识到在Bytecode中有一些关于泛型类型的信息.

这是我的测试:

我写了2节课:

import java.util.*;
public class Test {
    List integerList;
} 
Run Code Online (Sandbox Code Playgroud)

import java.util.*;
public class Test {
    List<Integer> integerList;
} 
Run Code Online (Sandbox Code Playgroud)

我编译了这两个类和泛型类中的某个地方,我看到了这一行

integerList{blah blah}Ljava/util/List;{blah blah}
Signature{blah blah}%Ljava/util/List<Ljava/lang/Integer;>;{blah blah}<init>
Run Code Online (Sandbox Code Playgroud)

在非泛型类中:

integerList{blah blah}Ljava/util/List;{blah blah}<init>
Run Code Online (Sandbox Code Playgroud)

所以显然我在字节码里面有通用信息所以这个擦除的东西是什么?

java generics jvm bytecode type-erasure

12
推荐指数
2
解决办法
1219
查看次数

标签 统计

generics ×2

java ×2

bytecode ×1

jvm ×1

type-erasure ×1