title: Implicit type cast not working for method parameters?
body: <p>Consider the following code snippet:</p>
  
  <pre><code>class TypeCast{
    public static void main(String[] args){
      byte by = 4;     //compiler casts int literal to byte
  
      doCasting(4);    //Compilation Error: external type casting is required. WHY ?
  
    }
  
    public static void doCasting(byte by){
  
    }
  
  }
  </code></pre>
  
  <p>I think above code snippet is quite self-explanatory. While <code>int</code> literal assignment to <code>byte</code> type, compiler does the required cast automatically. Same thing does not happen when we call a method taking <code>byte</code> parameter with int literal. Why?</p>