Genericsで四則演算したい、みたいな夢を見てみた

public class OpTest {
	
	enum Operator
	{	
		PLUS, MINUS, MULTI, DIVIDE;
		
		public <T> T execute( T num1, T num2 )
		{
			T value;
			
			switch(this)
			{
			case PLUS:
				value = num1 + num2;
				break;
			case MINUS:
				value = num1 - num2;
				break;
			case MULTI:
				value = num1 * num2;
				break;
			case DIVIDE:
				value = num1 / num2;
				break;
			default:
				value = null;
			}
			return value;
		}
	}
	
	public static void main(String[] args) {
		Integer inum = Operator.PLUS.execute( 1, 2 );
		System.out.println( inum );
		Double dnum = Operator.DIVIDE.execute(5.0, 3.0);
		System.out.println( dnum );
	}
}

 「演算子?は引数の型T, Tで未定義です」みたいなエラーが出ます。mainでは型がちゃんと渡ってるのになー。やっぱダメなのかなぁ。