diff --git a/src/main/java/org/sablecc/sablecc/Symbol.java b/src/main/java/org/sablecc/sablecc/Symbol.java
index b121b18d0d1d8e993fbd4526a5ea567ad17ba5ee..2a74075fb3d3ee54d6640199576ca9a794bb04e8 100644
--- a/src/main/java/org/sablecc/sablecc/Symbol.java
+++ b/src/main/java/org/sablecc/sablecc/Symbol.java
@@ -10,10 +10,10 @@ package org.sablecc.sablecc;
 import java.util.*;
 import java.util.Vector;
 
-final class Symbol implements Comparable
+final class Symbol implements Comparable<Symbol>
 {
-  private static Vector terminals;
-  private static Vector nonterminals;
+  private static Vector<Symbol> terminals;
+  private static Vector<Symbol> nonterminals;
   private static TreeMap<String, Symbol> names;
 
   private static boolean modified_ = true;
@@ -57,8 +57,8 @@ final class Symbol implements Comparable
 
   public static void reinit()
   {
-    terminals = new Vector();
-    nonterminals = new Vector();
+    terminals = new Vector<>();
+    nonterminals = new Vector<>();
     names = new TreeMap<>();
     modified_ = true;
     symbols_ = null;
@@ -134,10 +134,8 @@ final class Symbol implements Comparable
   }
 
   @Override
-  public int compareTo(Object object)
+  public int compareTo(Symbol symbol)
   {
-    Symbol symbol = (Symbol) object;
-
     if(terminal ^ symbol.terminal)
     {
       if(terminal)
diff --git a/src/main/java/org/sablecc/sablecc/SymbolSet.java b/src/main/java/org/sablecc/sablecc/SymbolSet.java
index 25a35b74989064a43907af921c60e8c576649510..0f324940678500a913305c0c2624a6210738776f 100644
--- a/src/main/java/org/sablecc/sablecc/SymbolSet.java
+++ b/src/main/java/org/sablecc/sablecc/SymbolSet.java
@@ -21,7 +21,7 @@ final class SymbolSet implements Cloneable
 
   private void computeArray()
   {
-    Vector symbols = new Vector(0);
+    Vector<Symbol> symbols = new Vector<>(0);
 
     int[] elements = terminals.elements();
     for(int i = 0; i < elements.length; i++)