2016-03-05 69 views
3

輸入我試圖弄清楚如何在執行該輸入。在這種形式的實體的方法的背景下,抽象類號碼做。抽象類,數量,我在Java中

下面是一個簡短的Java腳本我寫了我的顯示混亂。

在主要方法中,我一直無法弄清楚如何使我的輸入更通用,因此當調用whynowork時,它可以根據其數據類型(Double,int,Comparable)打印出消息。

public class PleaseWork{ 


    public static void main(String[] args) { 

    //where i was desperately trying to figure out how to input a number  
     int x= Integer.parseInt(args[0]); 
     float a = Float.parseFloat(args[0]); 
     whynowork(3); 

    } 

// this tells you what data type your input is 
    public static void whynowork(Number param) { 

     if(param instanceof Double) { 
      System.out.println("param is a Double"); 
     } 
     else if(param instanceof Integer) { 
      System.out.println("param is an Integer"); 
     } 

     if(param instanceof Comparable) { 
      System.out.println("param is comparable"); 
     }  

    } 

} 
+1

通常,'Number'最適用於接受任何數字輸入,並使用它您想要的數字輸出。例如,如果你有一個RGB方法,你可以接受'Number'作爲紅色參數,併爲你的0-255 int獲得'red.intValue()'。 – Rogue

+0

什麼用的變量,當你在一個硬編碼字面INT – Ramanlfc

+0

@Ramanlfc我只是暫時harcoding一個INT文字,因爲我想確保我的方法是工作的罰款(這是隻有在那裏測試'whynowork') – stratofortress

回答

1

您可以將其簡化爲:(我是如何用它至少)System.out.println("patam is a "+param.getClass().getSimpleName());

+0

顯然它不適用於浮動。如果我做了以下'float a = Float.parseFloat(args [0]);'然後'System.out.println(「patam是一個」+ a.getClass()。getSimpleName());',我得到一個錯誤信息如下'float不能被解除引用' – stratofortress

+0

另外,如果我正確地理解它,在Java中,main中的每個第一個輸入總是一個字符串。我希望有一種方法可以讓我的代碼找出我的數值輸入是什麼數據類型(int double等)。 – stratofortress

+0

它對基元類型不起作用。我想你想使用'Float a = Float.parseFloat(args [0]);您返回一個浮點值,然後將其解除到原始浮點數。 同樣如你所見,main中的每個參數都是一個String,因爲'String [] args'。 – Luqasso