[英]How to read arrays from command line and display them using generic method in JAVA?
我正在研究与java中的泛型有关的东西,我在这里找到了这个例子。 这可能是一个简单的问题,但我想找到一个使用泛型的人的正确答案。 此泛型方法将不同类型的数组作为输入参数,并显示它们。 现在我想通过从命令行读取这些数组来做到这一点。 你能帮我找到正确的方法吗? 谢谢。
public class GenericMethodTest
{
// generic method printArray
public static < E > void printArray( E[] inputArray )
{
// Display array elements
for ( E element : inputArray ){
System.out.printf( "%s ", element );
}
System.out.println();
}
public static void main( String args[] )
{
// Create arrays of Integer, Double and Character
Integer[] intArray = { 1, 2, 3, 4, 5 };
Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };
Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };
System.out.println( "Array integerArray contains:" );
printArray( intArray ); // pass an Integer array
System.out.println( "\nArray doubleArray contains:" );
printArray( doubleArray ); // pass a Double array
System.out.println( "\nArray characterArray contains:" );
printArray( charArray ); // pass a Character array
}
}
我认为您必须将数据类型包含在命令行中,或者具有通过启发式检测类型的例程。 就像是
java GenericMethodTest "doubleArray" "1.1 2.2"
你有两个args,类型和数组。 然后你需要一个构造函数,它将第二个参数从一个字符串转换为一个数组,例如
public DoubleArray (String sin) {
String[] ss = sin.split(" ")'
double dd[] = new Double[ss.length];
for (String s : ss) {
dd[i++] = new Double(s);
}
}
我在科学编程中做了很多这样的事情,我通常最终得到数据类型的特殊情况。 程序如何知道什么是整数或字符串或双精度? 你要么必须告诉它,要么你必须给它一个猜测的机会。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.