我需要一个可以容纳任何数据类型的变量。它可以是byte
或String
。这在Java中可行吗?我知道在Swift中有一个名为Any
的数据类型可以做到这一点。
答案 0 :(得分:2)
Java中没有“ any”类型,也没有与引用类型和原始类型都兼容的Java类型。
您能做的最好的事情是使用java.lang.Object
,它可以用于保存任何引用类型,并将原始值转换为相应的包装器类型。例如将int
值转换为Integer
值。但是一旦完成此操作,就无法区分(例如)int
和Integer
的值。
当然,您可以编写一堆代码,将几乎所有Java值转换为字节数组或String ...,然后返回。但是我怀疑那不是你在说什么。
答案 1 :(得分:0)
OBJECT类型的变量,当作为参数传递时可以保存任何类型的数据类型。甚至您都可以尝试使用Java泛型。
class Printer
{
public void printArray(Object[] a)
{
for(Object ob:a)
System.out.println(ob);
}
}
public class Solution {
public static void main( String args[] ) {
Printer myPrinter = new Printer();
Integer[] intArray = { 1, 2, 3 };
String[] stringArray = {"Hello", "World"};
myPrinter.printArray(intArray);
myPrinter.printArray(stringArray);
int count = 0;
}
}