【JAVA】泛型——对数据类型转换和数据存取方法的逐步优化过程

本文探讨了泛型类中因父类访问子类属性限制导致的数据类型转换问题,并展示了如何通过泛型参数化优化数据存取方法,避免强制类型转换,提高代码效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面的代码是对泛型类里面,因为父类访问子类属性的限制,而产生的对数据类型转换和数据存取方法的逐步优化过程。

public class TestTemplate {
    public static void main(String[] args) {

        /**
         * F a=new F(new Student(111,"lisi",'m'),30.5);
         * System.out.println(a.getB().getName);
         */
        //父类只能访问子类里面父类定义的属性,
        //而Object类里面没有name属性。


        //那么我们可以这样做:
        /**
         * F a=new F(new Student(111,"lisi",'m'),30.5);
         * Student o = (Student) a.getB();
         * System.out.println(o.getName());
         */

        //但是,转换也比较浪费时间和空间。


        //下面我们可以这样做:
        //我们定义类的时候,不确定类里面放什么数据类型。
        //但是,一旦我们使用的时候,
        //系统就把数据类型给我们确定了。

        //我们先把类的参数属性定义一下:
        /**
         * public F<S,T> {
         *         this.b = b;
         *         this.c = c;
         *     }
         *
         *     public S getB() {
         *         return b;
         *     }
         *
         *     public void setB(S b) {
         *         this.b = b;
         *     }
         *
         *     public T getC() {
         *         return c;
         *     }
         *
         *     public void setC(T c) {
         *         this.c = c;
         *     }
         *
         *     private S b;
         *     private T c;
         */

        //我们现在传参的时候可以这样做:
        /**
         * F<Student,Double> a=new F(new Student(111,"lisi",'m'),30.5);
         * Student o = a.getB();
         * System.out.println(o.getName());
         */
        //现在我们在调用的时候,因为有了泛型,
        //我们的get方返回的就是我们想要得到的类型,
        //即在我们使用的时候就确定了。
        //所以就没有强制转换这一步了。


        //下面是在泛型归则下输出的Integer类型和Double型数据
        /**
         * F<Integer, Double> a = new F<>(20, 30.34);
         * System.out.println(a.getB());
         * System.out.println(a.getC());
         */
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-_星耀_-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值