好繁琐...一堆if else...你不觉得很麻烦吗? 我给你提个思路. 你每个Goods object里面都设置一个天敌的list.
Goods g = new Goods("Sheep");
g.setEnemy(Arrays.asList(new String[]{"wolf" }));
Goods g2 = new Goods("Cabbage");
g2.setEnemy(Arrays.asList(new String[]{"Sheep" }));
Goods g3 = new Goods("Wolf");
g3.setEnemy(Arrays.asList(new String[]{}));
这样你的在check isFriendly的时候, 只要检测2个物品的enemyList里面没有自己就可以了.
return !good1.getEnemyList().contains(good2.getName()) && !good2.getEnemyList().contains(good1.getName());