gpt4 book ai didi

java - 在 Java 中模拟 C++-typedef

转载 作者:行者123 更新时间:2023-11-30 02:02:21 25 4
gpt4 key购买 nike

可以typedef FooBar Bar;并通过代码中的表达式Foo::Bar访问FooBar类型

#include <typeinfo>
#include <iostream>

class FooBar {};
class FooBat {};

class Foo
{
public:
typedef FooBar Bar;
typedef FooBat Bat;
};

int main()
{
if( typeid(Foo::Bar) == typeid(FooBar) &&
typeid(Foo::Bat) == typeid(FooBat) )
std::cout << "All is well." << std::endl;
}

被翻译成 Java?

间接引用类型的 Java 等价物是什么?

STL和boost中填充的代码如下

typedef T              value_type;
typedef T* iterator;

我想知道 Java 是否支持类似的通用编程习惯用法。即使无法在编译时完成类型间接寻址,我仍然对答案感兴趣。

编辑熟悉 Java 的人对这个问题(如何在 Java 中进行重要的泛型编程)没有兴趣。我现在添加“C++”作为标签。

最佳答案

您可以比较类:

Object a = . . .;
Object b = . . .;
if (a.getClass().equals(b.getClass())) {
// a and b are instances of the same class
}
if (a.getClass().isAssignableFrom(b.getClass())) {
// the class of a is a superclass of b's class
}

但是,Java 没有像 typedef 这样的东西允许您使用一种类型名称作为另一种类型的别名。

关于java - 在 Java 中模拟 C++-typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13301324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com