【发布时间】:2011-01-15 11:41:42
【问题描述】:
在 Java 中,如何将类型作为参数传递(或声明为变量)?
我不想传递类型的实例,而是传递类型本身(例如 int、String 等)。
在 C# 中,我可以这样做:
private void foo(Type t)
{
if (t == typeof(String)) { ... }
else if (t == typeof(int)) { ... }
}
private void bar()
{
foo(typeof(String));
}
在 Java 中有没有不传递 t 类型的 实例 的方法?
还是我必须使用自己的 int 常量或枚举?
还是有更好的办法?
编辑:这是对 foo 的要求:
根据类型 t,它会生成一个不同的短 xml 字符串。
if/else 中的代码会非常小(一两行),并且会使用一些私有类变量。
【问题讨论】:
-
您可以像 private void foo(Class c) 一样传递 Class 类型并像 foo(String.class) 一样使用