2016-05-10 25 views
0

コードに問題があり、受信したエラーを解決する方法がわからない「互換性のない型: intをPlayerに変換することはできません "というメッセージが表示されますが、これは私の最初の選択ソートの試みです。そして、検索が、まだそれを机の上に私の頭を叩いて3日後にこのエラーを考え出したていない。事前に感謝を!Javaエラー:「互換性のない型:intをPlayerに変換できません」

public static void selectionSort(Player[] team, int team_size) 
{ 
    int index; 
    int smallestIndex; 
    int minIndex; 
    int temp; 

    for (index = 0; index < team_size - 1; index++) 
    { 
     smallestIndex = index; 

     for (minIndex = index + 1; minIndex < team_size; minIndex++) 
      if(team[minIndex].getNumber() < team[smallestIndex].getNumber()) 
       smallestIndex = minIndex; 
     temp = team[smallestIndex].getNumber(); 
     team[smallestIndex] = team[index]; 
     team[index] = temp; 
    } 
} 

答えて

1

ここでの問題はエラーの意味です。パラメータteamは、Playerオブジェクトの配列です。 tempは単なるintです。だからPlayerオブジェクトであるteam[index]を設定しようとすると、それはできません。

ソートで2人のプレイヤーを交換しようとしていますか?たぶん、一時はスワップも

temp = team[smallestIndex]; //returns the actual Player instance rather than getNumber(); 
team[smallestIndex] = team[index]; 
team[index] = temp; 

のためにその後Player

Player temp; 

する必要があり、あなたはおそらく、あなたがteam.lengthを使って、プレイヤーの配列の長さを得ることができるようteam_sizeに渡したくありません。あなたは毎回正しい長さを渡すことに頼る必要はありません。あなたのためのループは、ありがとう、同様のエラーを明確にする助けとなぜ私はそれを得ていたこの

for (index = 0; index < team.length; index++) 
+0

これは私の問題を完全に解決しました。私は一時的なintであることが問題であることに気づいていませんでした。私のエラーを明確にするのを手伝ってくれてありがとう、そしてそれを解決する方法! – ADE

+0

問題ありません!それがあなたの問題を解決した場合は、答えの左側にある緑のチェックマークをクリックするのが普通です。ありがとう。 – element11

1
team[index] = temp; 

tempはです、あなたのメソッドで定義されています。 teamPlayerオブジェクトの配列なので、team[index]Playerです。この行のPlayerintを割り当てようとしています。あなたがここにtempの値を設定し

注:

temp = team[smallestIndex].getNumber(); 

私は本当にコンテキストを知らないが、あなたは常に割り当てられていることを確認する必要がありますように私は、読みあなたのコードが少し難しい見つけますteam[someIndex]Playerオブジェクトです。

+0

ようになります。 – ADE

関連する問題