gpt4 book ai didi

java - 如何将类型保存为变量并在 cast 中使用它

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

我有以下代码:

public class MyClass {...}

private void foo(MyClass _param)

void caller {
Object obj = new MyClass();
foo((MyClass)obj);
}

我只想提及一次MyClass,稍后按如下方式使用它:

void caller {
Class<?> clazz = MyClass.class;
...
Object obj = new clazz();
foo((clazz)obj); // compile error: "unknown class 'clazz'"
}

是否可以实现?

最佳答案

不,不是。创建一个为您进行转换的方法。

private MyClass cast(Object obj)
{
return (MyClass) obj;
}

这将是一个更通用的解决方案:

void caller() 
{
Class<MyClass> clazz = MyClass.class;
Object obj = new MyClass();
foo(cast(obj, clazz));
}

private <T> T cast(Object obj, Class<T> clazz)
{
return (T) obj;
}

在您的示例中,您编写了 Object obj = new clazz(); 这可以写成 MyClass obj = clazz.newInstance();

关于java - 如何将类型保存为变量并在 cast 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38478152/

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