由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 如何克服Java Type Eraser?
相关主题
js 的typeof基本上是brokenA C++ STL question
cannot trace var values in vs2005没完的“unresolved external symbol” in c++ compiling
发现还没写过IInterface {....}stl container erase in a loop
问一个关于Android Java的问题《C# 5.0 核心技术》第5版[PDF]
求教一个java generics的小白问题其实微软是个做语言的公司
Scala higher-kind type和jvm弱type systemGo什么时候可能支持Generic?
client往server发送不同类型数据怎么处理?GO似乎是目前最难反编译的代码了
scala ts 的复杂请教一个问题
相关话题的讨论汇总
话题: value话题: obj话题: symbol话题: type话题: eraser
进入Programming版参与讨论
1 (共1页)
b***i
发帖数: 3043
1
有一个项目,我目前的设计是这样的,
有一个Symbol和其子类Triangle, Point, Segment, ...
还有一个量类Value是generics编程
class Value extends ... {
public boolean equal(Value other){//此处可以改名,因为
不是重载
...
}
@Override
public boolean equal(Object obj){
if (this==obj) return true;
【x】 if (!(obj instanceof Value) return false;
return equal((Value)obj);
}
}
大家看到,【x】表示这一行不能编译,因为Type Eraser。但是如果改成Value,下
一行又出现提示,要suppress warning。如何才能判断obj是不是同一个类型?然后安
全呼叫知道类型的比较?
L*******k
发帖数: 42
2
如果只是比较type可以把this和obj的runtime class cast 到ParameterizedType 吧
n***p
发帖数: 110
3
change both Value to Value
m****o
发帖数: 182
4
没有什么好办法,除非你愿意改用Scala写:用ClassManifest把compile time的类信息
带入到runtime中。
b***s
发帖数: 117
5
obj.getClass() == Value.class ?

【在 b***i 的大作中提到】
: 有一个项目,我目前的设计是这样的,
: 有一个Symbol和其子类Triangle, Point, Segment, ...
: 还有一个量类Value是generics编程
: class Value extends ... {
: public boolean equal(Value other){//此处可以改名,因为
: 不是重载
: ...
: }
: @Override
: public boolean equal(Object obj){

1 (共1页)
进入Programming版参与讨论
相关主题
how to suppress the implicit conversion for type conversi求教一个java generics的小白问题
求算法:非交子集。琢磨好几天了,特向大家求教。Scala higher-kind type和jvm弱type system
问一个 information retrieval 问题。。。client往server发送不同类型数据怎么处理?
gcc -Oscala ts 的复杂
js 的typeof基本上是brokenA C++ STL question
cannot trace var values in vs2005没完的“unresolved external symbol” in c++ compiling
发现还没写过IInterface {....}stl container erase in a loop
问一个关于Android Java的问题《C# 5.0 核心技术》第5版[PDF]
相关话题的讨论汇总
话题: value话题: obj话题: symbol话题: type话题: eraser