在 C++ 中,我像这样围绕 cout 构建了一个小包装器:
template <class T>
void output( T a ){
if(is_this_enabled==true)
std::cout<<a<<endl;
return;
}
当某些类型的输出涌入命令行时,我只需要更改 is_this_enabled
并且当它们不相关时我可以一站式抑制它们。
我是 java 的新手,我开始编写一个类来实现相同的目的。我发现自己在查看教程时发现没有直接模拟 java 中的模板。
是否有更好/更短的方法来完成此操作然后编写随附的 函数 每个 System.out.println()
重载的方法?泛型似乎无法做到这一点。
最佳答案
您可以使用称为自动装箱的功能来做到这一点——当将基元分配给引用类型的变量或字段时,它会转换为该类型的实例(例如 int
变为java.lang.Integer
.
由于打印对象的行为意味着调用 toString()
,您可以简单地使用一个方法:
void output(Object o){
if(outputEnabled)
System.out.println(o.toString());
}
关于java - 解决 java 中缺少模板的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25318651/