Não é possível adicionar um número inteiro ao <Long>> ArrayList [duplicate]

Esta pergunta já tem uma resposta aqui:

Java: Por que não posso lançar int para Long 4 respostas

Criei uma ArrayList:

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Arrays;
class Main{
    static ArrayList<Long> fibo_list=new ArrayList<Long>();
    static int current_index;
    public static void main(String args[]){
        fibo_list.add(0);
        fibo_list.add(1);
        fibo_list.add(1);

Os três fibo_list.add () lançam o mesmo tipo de erro. Aqui está o primeiro:

error: no suitable method found for add(int)
    fibo_list.add(0);
             ^
method ArrayList.add(int,Long) is not applicable
  (actual and formal argument lists differ in length)
method ArrayList.add(Long) is not applicable
  (actual argument int cannot be converted to Long by method invocation conversion)
method AbstractList.add(int,Long) is not applicable
  (actual and formal argument lists differ in length)
method AbstractList.add(Long) is not applicable
  (actual argument int cannot be converted to Long by method invocation conversion)
method AbstractCollection.add(Long) is not applicable
  (actual argument int cannot be converted to Long by method invocation conversion)

Agora funcionou colocando-o assim:

fibo_list.add((long)0);
fibo_list.add((long)1);
fibo_list.add((long)1);

Mas por que não se lançou implicitamente?

questionAnswers(3)

yourAnswerToTheQuestion