2015-04-14 4 views
0

Я начинаю программировать. Я знаю, почему я получаю эту ошибку при слиянии результатов (list1) ..., но я не знаю, как исправить эту ошибку. Я рассмотрел некоторые из вопросов, связанных с этой ошибкой здесь, но я все еще смущен. Я не хочу, чтобы кто-нибудь написал код для меня, но я был бы признателен за некоторые объяснения. Спасибо.Int не может быть разыменован. Как это исправить?

public int merge(int list1){ 
    try{ 
    int count = 0; 
    for(int i= 0; i < 2; i++){ 
    count++; 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("Please input the name of the file to be opened for " + count + " list: "); 
    String filename = keyboard.nextLine(); 

    File file = new File(filename); 
    Scanner inputFile = new Scanner(file); 
    System.out.print("The list " + count + " is: "); 

    while(inputFile.hasNext()){ 
     if(!inputFile.hasNextInt()){ 
     String ss = inputFile.next(); 
     }else{ 
     int length = 1; 
     list1 = inputFile.nextInt(); 
     System.out.print(list1 + " "); 

     } 

     } 

    System.out.println(); 
    } 

    int result = merge(list1).insertEnd(list1); 


} catch (Exception e) { 
    System.out.println("could not find the file"); 
} 
    return result; 
} 
+0

На каком языке это? – Biffen

+1

'merge()' возвращает 'int', и вы ожидаете, что он (' int') получит функцию 'insertEnd()', которую я предполагаю, что это не так. – Biffen

+0

@Biffen Язык Java –

ответ

2

В выражении merge(list1).insertEnd(list1);, merge(list1) имеет тип int потому что тип возвращаемого значения метода merge.

В этом выражении типа int, вы пытаетесь вызвать insertEnd метод, который не может работать, потому что int примитивный тип и не имеет такого метода.

Ваше сообщение об ошибке «не может быть разыменовываются» объясняет, что int не ссылки типа (это INT, который является примитивным типа), поэтому он не может быть «разыменованным» (имея в виде, вы не может следовать указателю, чтобы найти экземпляр в памяти, на который вы могли бы назвать метод insertEnd)