Use generics instead of casting.

This commit is contained in:
Olof Larsson 2015-05-06 12:25:02 +02:00
parent a7ba558899
commit d55afc9f9a
2 changed files with 8 additions and 7 deletions

View File

@ -35,7 +35,7 @@ public class HelpCommand extends MassiveCommand
public void perform() throws MassiveException public void perform() throws MassiveException
{ {
// Args // Args
int pagenumber = (Integer) this.readArg(1); int pagenumber = this.readArg(1);
// Get parent command // Get parent command
if ( ! this.hasParentCommand()) return; if ( ! this.hasParentCommand()) return;

View File

@ -1003,12 +1003,12 @@ public class MassiveCommand
return this.argAt(nextArg); return this.argAt(nextArg);
} }
public Object readArg() throws MassiveException public <T> T readArg() throws MassiveException
{ {
return this.readArgAt(nextArg); return this.readArgAt(nextArg);
} }
public Object readArg(Object defaultNotSet) throws MassiveException public <T> T readArg(T defaultNotSet) throws MassiveException
{ {
return this.readArgAt(nextArg, defaultNotSet); return this.readArgAt(nextArg, defaultNotSet);
} }
@ -1022,19 +1022,20 @@ public class MassiveCommand
return this.getArgs().get(idx); return this.getArgs().get(idx);
} }
public Object readArgAt(int idx) throws MassiveException @SuppressWarnings("unchecked")
public <T> T readArgAt(int idx) throws MassiveException
{ {
if ( ! this.hasArgSettingForIndex(idx)) throw new IllegalArgumentException(idx + " is out of range. ArgSettings size: " + this.getArgSettings().size()); if ( ! this.hasArgSettingForIndex(idx)) throw new IllegalArgumentException(idx + " is out of range. ArgSettings size: " + this.getArgSettings().size());
String str = this.argAt(idx); String str = this.argAt(idx);
return this.readArgFrom(str, this.getArgSettings().get(idx).getReader()); return this.readArgFrom(str, (AR<T>)this.getArgSettings().get(idx).getReader());
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public Object readArgAt(int idx, Object defaultNotSet) throws MassiveException public <T> T readArgAt(int idx, T defaultNotSet) throws MassiveException
{ {
if ( ! this.hasArgSettingForIndex(idx)) throw new IllegalArgumentException(idx + " is out of range. ArgSettings size: " + this.getArgSettings().size()); if ( ! this.hasArgSettingForIndex(idx)) throw new IllegalArgumentException(idx + " is out of range. ArgSettings size: " + this.getArgSettings().size());
String str = this.argAt(idx); String str = this.argAt(idx);
return this.readArgFrom(str, (AR<Object>)this.getArgSettings().get(idx).getReader(), defaultNotSet); return this.readArgFrom(str, (AR<T>)this.getArgSettings().get(idx).getReader(), defaultNotSet);
} }
// Core Logic // Core Logic