m0_37890637
2017-06-07 12:37
采纳率: 33.3%
浏览 830
已采纳

一个关于Java泛型的问题,求帮助谢谢

class Demo{
private c a;
public Demo(c a){
this.a=a;
}
public c getA(){
return a;
}
public void setA(c a){
this.a=a;
}
}
public class Generic {
public static void main(String args[]){
Demo b=new Demo(5);
//b.setA();
System.out.print(b.getA());
}
}图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • HrIris 2017-06-07 14:26
    已采纳

    尴尬,前面乱了
    重写遍
    int是基本类型,你换成Integer就好了

    Demo b=new Demo<>(5);

    点赞 评论
  • 壮飞 2017-06-07 12:50

    定义类的时候:
    class Demo{
    //这里是你的那些代码
    }
    使用的时候在main函数中
    Demo demo=new Demo(5);
    我没测试,你试试

    点赞 评论
  • qq_36459106 2017-06-07 13:15

    泛型<>里边必须是对象类型,你这报错是由于<>里边是基本类型导致的。

    点赞 评论
  • MarmotCoder 2017-06-07 13:28

    同意楼上的,你可以试一下

    点赞 评论
  • HrIris 2017-06-07 14:23

    泛型类型必须是引用类型,换成
    int是基本类型,换成Integer

    Demo new Demo<>(a);

    public class Demo<E> {
        private E a;
    
        public Demo(E a){
            this.a=a;
        }
    
        public E getA(){
            return a;
        }
    
        public void setA(E a){
            this.a=a;
        }
    }
    

    差不多像这种感觉?

    点赞 评论
  • 战在春秋 2017-06-07 21:17

    Generic.java文件代码如下:

    class Demo<T> {
        private T a;
    
        public Demo(T a) {
            this.a = a;
        }
    
        public T getA() {
            return a;
        }
    
        public void setA(T a) {
            this.a = a;
        }
    }
    
    public class Generic {
        public static void main(String args[]) {
            Demo<Integer> integerBox = new Demo<Integer>(5);
            Demo<String> stringBox = new Demo<String>("Hello");
    
            System.out.printf("Integer Value :%d\n", integerBox.getA());
            System.out.printf("String Value :%s\n\n", stringBox.getA());
    
            integerBox.setA(new Integer(10));
            stringBox.setA(new String("Hello World"));
    
            System.out.printf("New Integer Value :%d\n", integerBox.getA());
            System.out.printf("New String Value :%s\n", stringBox.getA());
        }
    }
    

    说明:
    1 泛型类的写法有规定语法。
    2 参数应为引用类型。

    测试结果如下图:

    图片说明

    点赞 评论
  • Mmmmm_2016 2017-06-08 01:01

    应该是Integer

    点赞 评论

相关推荐 更多相似问题