c# - Foo.class 是做什么的?

标签 c# java class types

我正在看一些 Java 代码,我经常看到这段代码。

Foo.class

这是用来表示类的类型?是不是类似于

Foo.GetType();
typeof(Foo);

在 C# 中?

它的用途是什么?它的含义是什么?

最佳答案

是的,Java 中的Foo.class 等同于C# 中的typeof(Foo)。参见 section 15.8.2 of the JLS有关类文字的更多信息。

与在引用上调用GetType() 相同,后者获取对象的执行时间 类型。 Java 的等价物是 someReference.getClass()

您可能在 Java 代码中比在 C# 中更频繁地看到它的一个原因是与泛型有关。有这样的东西并不完全不寻常:

public class Generic<T>
{
    private final Class<T> clazz;

    public Generic(Class<T> clazz)
    {
        this.clazz = clazz;
    }
}

这允许在执行时访问类以进行反射等。由于类型删除,这仅在 Java 中是必需的,因此泛型类型的对象通常无法确定其类型参数执行时间。

关于c# - Foo.class 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789924/

相关文章:

c# - 如何在运行时移动 mousemove 上的控件?

javascript - 将空数据从 $.post 发送到 Controller 模型

c++ - 从父类(super class)对象调用子类方法,虚函数

python - 文件对象对比文件名

c# - 如果它有值,我应该如何使用可空类型

c# - 局部敏感哈希实现?

java - Android蓝牙周期性调用inputStream和outputStream : inconsistent timestamps

java - Android:按升序对存储在firebase数据库中的时间进行排序

Java和虚拟内存ulimit

c++ - struct C++ 中的类指针