| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4367 人关注过本帖
标题:请问我下面的程序哪里错了啊 困扰了好久了
取消只看楼主 加入收藏
R的补
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2019-3-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
请问我下面的程序哪里错了啊 困扰了好久了
import java.util.Iterator;
import java.util.ArrayList;
import java.util.Collection;
public class 练习获取集合最大值
{
    public static void main(String[] args)
    {
        ArrayList<? extends Person> al = new ArrayList<>();
        al.add(new Student("ahjklhkalhkjlhf",53));
        al.add(new Student("xcvbxcvsdf",67));
        al.add(new Person("asdfasdf",45));
        al.add(new Person("ruytry",20));
        Person max=getMax(al);
        System.out.println(max);
    }
    public static <T extends Comparable<? super T>> T getMax(Collection <? extends T> c)
    {
        //迭代此从哪个集合那拿的元素,里面的类型就要和其一致
        //所以下面是? extends T不是? super T
        Iterator<? extends T> it = c.iterator();
        //思路1.定义变量记录集合中其中一个
        T max  =it.next();
        //2.遍历集合中的元素
        while(it.hasNext())
        {
            if(((it.next())>0))
            max=it.next();
        }
        return max;
    }
}
class Person
{
    private String name;
    private int age;
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name=name;
    }
    public int getAge()
    {
        return age;
    }
    public void setAge(int age)
    {
        this.age=age;
    }
    public Person(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    public int compareTo(Person p)
    {
        int temp = this.age-p.age;
        return temp==0?this.(p.name):temp;
    }
}
class Student extends Person
{
    public Student(String name,int age)
    {
        super(name,age);
    }
}
搜索更多相关主题的帖子: public Person int name age 
2019-03-20 12:51
R的补
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2019-3-18
收藏
得分:0 
练习获取集合最大值.java:9: 错误: 不兼容的类型: Student无法转换为CAP#1
                al.add(new Student("ahjklhkalhkjlhf",53));
                       ^
  其中, CAP#1是新类型变量:
    CAP#1从? extends Person的捕获扩展Person
练习获取集合最大值.java:10: 错误: 不兼容的类型: Student无法转换为CAP#1
                al.add(new Student("xcvbxcvsdf",67));
                       ^
  其中, CAP#1是新类型变量:
    CAP#1从? extends Person的捕获扩展Person
练习获取集合最大值.java:11: 错误: 不兼容的类型: Person无法转换为CAP#1
                al.add(new Person("asdfasdf",45));
                       ^
  其中, CAP#1是新类型变量:
    CAP#1从? extends Person的捕获扩展Person
练习获取集合最大值.java:12: 错误: 不兼容的类型: Person无法转换为CAP#1
                al.add(new Person("ruytry",20));
                       ^
  其中, CAP#1是新类型变量:
    CAP#1从? extends Person的捕获扩展Person
练习获取集合最大值.java:13: 错误: 无法将类 练习获取集合最大值中的方法 getMax应用到给定类型;
                Person max=getMax(al);
                           ^
  需要: Collection<? extends T>
  找到: ArrayList<CAP#1>
  原因: 推论变量 T 具有不兼容的上限
    下限:Comparable<? super T>
    下限:CAP#1
  其中, T是类型变量:
    T扩展已在方法 <T>getMax(Collection<? extends T>)中声明的Comparable<? super T>
  其中, CAP#1是新类型变量:
    CAP#1从? extends Person的捕获扩展Person
注: 某些消息已经过简化; 请使用 -Xdiags:verbose 重新编译以获得完整输出
5 个错误
2019-03-20 12:52
R的补
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2019-3-18
收藏
得分:0 
二楼是编译时出错的提醒
2019-03-20 12:53
R的补
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2019-3-18
收藏
得分:0 
有没有大佬帮吗看一看啊
2019-03-20 14:37
R的补
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2019-3-18
收藏
得分:0 
回复 5楼 林月儿
感谢版主
但是还是有错
练习获取集合最大值.java:13: 错误: 无法将类 练习获取集合最大值中的方法 getMax应用到给定类型;
                Person max=getMax(al);
                           ^
  需要: Collection<? extends T>
  找到: ArrayList<CAP#1>
  原因: 推论变量 T 具有不兼容的上限
    下限:Comparable<? super T>
    下限:CAP#1
  其中, T是类型变量:
    T扩展已在方法 <T>getMax(Collection<? extends T>)中声明的Comparable<? super T>
  其中, CAP#1是新类型变量:
    CAP#1从? super Person的捕获扩展Object 超 Person
1 个错误
2019-03-20 19:45
R的补
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2019-3-18
收藏
得分:0 
有没有大佬帮忙看看。。。。
2019-03-21 11:52
R的补
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2019-3-18
收藏
得分:0 
回复 8楼 rind
感谢大佬!!让我对泛型的理解有了更深的认识!真的十分感谢!
2019-03-21 18:36
快速回复:请问我下面的程序哪里错了啊 困扰了好久了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015741 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved