繁体   English   中英

如何从命令行读取数组并使用JAVA中的泛型方法显示它们?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM