Dar*_*der 9 c# java types class
我正在查看一些Java代码,我经常看到这些代码.
Foo.class
Run Code Online (Sandbox Code Playgroud)
这用于表示类的类型?是那样的
Foo.GetType();
typeof(Foo);
Run Code Online (Sandbox Code Playgroud)
在C#?
它用于什么?它的含义是什么?
Jon*_*eet 12
是的,Foo.class在Java中相当于typeof(Foo)在C#中.有关类文字的更多信息,请参见JLS的第15.8.2节.
这是不是与调用GetType()上的参考,它得到了执行时间的对象的类型.Java的等价物是someReference.getClass().
您可能在Java代码中比在C#中更常见到的一个原因与泛型有关.有这样的东西并不完全是不寻常的:
public class Generic<T>
{
private final Class<T> clazz;
public Generic(Class<T> clazz)
{
this.clazz = clazz;
}
}
Run Code Online (Sandbox Code Playgroud)
这允许对类的执行时访问以进行反射等.由于类型擦除,这仅在Java中是必需的,因此泛型类型的对象通常不能在执行时确定其类型参数.