Creating new ArrayList is unneccesarry

We shouldn't create new arraylist with default size and no element in it to show that no elements found in database. It's one more object in heap, which will be never used. There is special method Collections.emptyList() - it's more readeable and returns empty immutable list
This commit is contained in:
vraskulin 2016-12-19 12:23:23 +03:00
parent e22951c68e
commit 2e83930ace
6 changed files with 67 additions and 66 deletions

View file

@ -27,9 +27,6 @@
*/
package mage.abilities.effects.common;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.effects.ReplacementEffectImpl;
@ -46,6 +43,11 @@ import mage.players.Player;
import mage.target.Target;
import mage.target.common.TargetControlledCreaturePermanent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
/**
* Effect for the DevourAbility
*
@ -68,37 +70,6 @@ public class DevourEffect extends ReplacementEffectImpl {
}
private final DevourFactor devourFactor;
public enum DevourFactor {
Devour1("Devour 1", "that many +1/+1 counters on it", 1),
Devour2("Devour 2", "twice that many +1/+1 counters on it", 2),
Devour3("Devour 3", "three times that many +1/+1 counters on it", 3),
DevourX("Devour X, where X is the number of creatures devoured this way", "X +1/+1 counters on it for each of those creatures", Integer.MAX_VALUE);
private final String text;
private final String ruleText;
private final int factor;
DevourFactor(String text, String ruleText, int factor) {
this.text = text;
this.ruleText = ruleText;
this.factor = factor;
}
@Override
public String toString() {
return text;
}
public String getRuleText() {
return ruleText;
}
public int getFactor() {
return factor;
}
}
public DevourEffect(DevourFactor devourFactor) {
super(Duration.EndOfGame, Outcome.Detriment);
this.devourFactor = devourFactor;
@ -184,7 +155,7 @@ public class DevourEffect extends ReplacementEffectImpl {
if (object != null) {
return (List<ArrayList<String>>) object;
}
return new ArrayList<>();
return Collections.emptyList();
}
public int getDevouredCreaturesAmount(Game game, UUID permanentId) {
@ -199,4 +170,35 @@ public class DevourEffect extends ReplacementEffectImpl {
public DevourEffect copy() {
return new DevourEffect(this);
}
public enum DevourFactor {
Devour1("Devour 1", "that many +1/+1 counters on it", 1),
Devour2("Devour 2", "twice that many +1/+1 counters on it", 2),
Devour3("Devour 3", "three times that many +1/+1 counters on it", 3),
DevourX("Devour X, where X is the number of creatures devoured this way", "X +1/+1 counters on it for each of those creatures", Integer.MAX_VALUE);
private final String text;
private final String ruleText;
private final int factor;
DevourFactor(String text, String ruleText, int factor) {
this.text = text;
this.ruleText = ruleText;
this.factor = factor;
}
@Override
public String toString() {
return text;
}
public String getRuleText() {
return ruleText;
}
public int getFactor() {
return factor;
}
}
}