public class A<T>{
   public Serializable test(T o) {
      //此处进行一些数据库操作
   }
}B类调用A类的test方法,例如:
A a1=new A();
a1.test("This is a demo");  //传入一个String类型的参数
a1.test(123);//传入一个int类型的参数

解决方案 »

  1. A.java
    import java.io.Serializable;public class A<T> {
        public Serializable test(T o) {
            //此处进行一些数据库操作
            System.out.println(o);
            return null;
        }
    }B.java
    public class B {
        public static void main(String[] args) {
            A a1 = new A();
            a1.test("This is a demo");  //传入一个String类型的参数
            a1.test(123);//传入一个int类型的参数
        }
    }
    输出:
    This is a demo
    123IntelliJ IDE+javac 1.8.0 : 编译+运行正常
      

  2. 我是用命令行编译的
    c:\>javac -version
    java version "1.8.0_11"c:\> javac B.java
        [javac]B.java:6: 警告: [unchecked] 对作为原始类型A的成员的test(T)的调用未经过检查
        [javac]             A.test("This is a demo")
         [javac]               ^
         [javac]   其中, T是类型变量:
         [javac]     T扩展已在类A中声明的Object
         [javac] 1 个警告