15.4.5 简化元组的使用

本文深入探讨了泛型在元组类中的应用,展示了如何创建不同大小的元组,并通过具体示例说明了泛型参数在方法定义与调用中的作用。通过实例演示了如何使用泛型方法来创建包含多种类型元素的元组。

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

1)方法的参数列表有泛型,故方法返回值前要加泛型参数列表;

package chapter15._4._5;

import chapter15._2._1.FiveTuple;
import chapter15._2._1.FourTuple;
import chapter15._2._1.ThreeTuple;
import chapter15._2._1.TwoTuple;

public class Tuple {

    public static <A, B> TwoTuple<A, B> tuple(A a, B b) {
        return new TwoTuple<A, B>(a, b);
    }

    public static <A, B, C> ThreeTuple<A, B, C> tuple(A a, B b, C c) {
        return new ThreeTuple<A, B, C>(a, b, c);
    }

    public static <A, B, C, D> FourTuple<A, B, C, D> tuple(A a, B b, C c, D d) {
        return new FourTuple<A, B, C, D>(a, b, c, d);
    }

    public static <A, B, C, D, E> FiveTuple<A, B, C, D, E> tuple(A a, B b, C c, D d, E e) {
        return new FiveTuple<A, B, C, D, E>(a, b, c, d, e);
    }

}
package chapter15._4._5;

import chapter15._2._1.*;

public class TupleTest2 {

    static TwoTuple<String, Integer> f() {
        return Tuple.tuple("hi", 47);
    }

    static TwoTuple f2() {
        return Tuple.tuple("hi", 47);
    }

    static ThreeTuple<Amphibian, String, Integer> g() {
        return Tuple.tuple(new Amphibian(), "hi", 47);
    }

    static FourTuple<Vehicle, Amphibian, String, Integer> h() {
        return Tuple.tuple(new Vehicle(), new Amphibian(), "hi", 47);
    }

    static FiveTuple<Vehicle, Amphibian, String, Integer, Double> k() {
        return Tuple.tuple(new Vehicle(), new Amphibian(), "hi", 47, 11.1);
    }

    public static void main(String[] args) {
        TwoTuple<String, Integer> ttsi = f();
        System.out.println(ttsi);

        System.out.println(f2());
        System.out.println(g());
        System.out.println(h());
        System.out.println(k());
    }

}

输出

TwoTuple{first=hi, second=47}
TwoTuple{first=hi, second=47}
ThreeTuple{third=47, first=chapter15._2._1.Amphibian@610455d6, second=hi}
FourTuple{fourth=47, third=hi, first=chapter15._2._1.Vehicle@511d50c0, second=chapter15._2._1.Amphibian@60e53b93}
FiveTuple{fifth=11.1, fourth=47, third=hi, first=chapter15._2._1.Vehicle@5e2de80c, second=chapter15._2._1.Amphibian@1d44bcfa}
使用VBA实现下面的功能: 1. Excel 版本为 2016版,处理大数据量。工作表事件代码与主代码分开显示。 2. 打开的Excel含有History.Cost 和 DataBase 两个工作表,下述History.Cost工作表简称为HC表,DataBase工作表简称为DB表。 3. HC表作为日常操作表格,数据经常会变动。其中第E、F、G、U、W、AF、AI列均为数字输入,空值默认为0,如果有非数字输入则提示报错。 4. DB表作为基础数据表格,只需每次打开工作表的时候加载所需数据即可。 5. HC表的A列和B列进行重复单元格标示,即只要A列和B列区域有重复数据,就用颜色(250,128,114)对重复的单元格进行标示。 6. HC表的A列和B列单元格有新数据录入后,自动更新重复标示功能。 7. 从HC表的第2行开始,判断A列是否有数据,如过有数据,则开始对HC表第2行开始的需要赋值的各列按下列规则赋值 7.1 使用HC表I列的数据对DB表B列进行数据查询 7.2 使用HC表E列的数据对DB表C列进行数据查询 7.3 记录同时符合7.1和7.2规则的DB表D列至R列的数据 7.4 每次点击文件保存按钮时,启动赋值规则。 8. HC表第J列(重量计算)赋值规则: 8.1 计算HC表E列和H列的乘积 8.2 将J列赋值为规则7.3记录数据的DB表D列与规则8.1的乘积 9. HC表第L列(重量单价)赋值规则: 9.1 将L列赋值为规则7.3记录数据的DB表E列数据 10. HC表第M列(材料费用)赋值规则: 10.1 调取规则7.3记录数据的DB表H列数据 10.2 如果规则10.1数据为字符W,M列赋值为HC表J列、K列和L列的乘积 10.3 如果规则10.1数据为字符S,M列赋值为HC表H列、K列和L列的乘积 11. HC表第N列(喷涂单价)赋值规则: 11.1 判断HC表C列内是否含有NPT字符 11.2 判断HC表P列内是否有数值 11.3 如果规则11.1或规则11.2 任一判断为真,则N列赋值为0; 11.4 如果规则11.3不成立,则N列赋值为规则7.3记录数据的DB表F列数据 12. HC表第O列(喷涂费)赋值规则: 12.1 计算HC表第G列除以1000后的值 12.2 如果HC表B列不为空,则运行规则12.3;如果HC表B列为空,则运行规则12.4 12.3 使用HC表B列数据对DB表Y列进行数据匹配,如果有匹配结果,则返回DB表AB列数据,并将HC表O列赋值为规则12.1与DB表AB列数据的乘积。如果没有匹配结果则运行规则12.4 12.4 使用HC表C列数据对DB表Y列进行数据匹配,如果有匹配结果,则返回DB表AB列数据,并将HC表O列赋值为规则12.1与DB表AB列数据的乘积。如果没有匹配结果则运行规则12.5 12.5 如果规则12.3与规则12.4均没有匹配结果,将HC表O列赋值为HC表H列与N列的乘积 13. HC表第T列(激光切割单价)赋值规则: 13.1 将HC表T列赋值为规则7.3记录数据的DB表I列数据 14. HC表第V列(切割费)赋值规则: 14.1 计算HC表T列与HC表U列的乘积 14.2 如果HC表B列不为空,则运行规则14.3;如果HC表B列为空,则运行规则14.4 14.3 使用HC表B列数据对DB表Y列进行数据匹配,如果有匹配结果,则返回DB表AC列数据,并将HC表V列赋值为规则14.1与DB表AC列数据之和。如果没有匹配结果则运行规则14.4 14.4 使用HC表C列数据对DB表Y列进行数据匹配,如果有匹配结果,则返回DB表AC列数据,并将HC表V列赋值为规则14.1与DB表AC列数据之和。如果没有匹配结果则运行规则14.5 14.5 如果规则12.3与规则12.4均没有匹配结果,将HC表V列赋值为规则14.1的计算结果 15. HC表第X列(折弯单价)赋值规则: 15.1 HC表W列大于零,运行此赋值规则 15.2 规定DB表第S列的各行为以下数值500、1000、2000、3000、3200、3300中的任意一个 15.3 如果HC表第F列和G列均有数据,用变量名MAXL记录F列与G列的最大值;否则将HC表X列赋值为0 15.4 使用规则MAXL与规则15.2的所列数值进行比较,并按下列比较规则记录比较结果: 15.4.1 MAXL<=500,记录所有DB表S列数据为500的DB表T列与U列数据 15.4.2 500<MAXL<=1000,记录所有DB表S列数据为1000的DB表T列与U列数据 15.4.3 1000<MAXL<=2000,记录所有DB表S列数据为2000的DB表T列与U列数据 15.4.4 2000<MAXL<=3000,记录所有DB表S列数据为3000的DB表T列与U列数据 15.4.5 3000<MAXL<=3200,记录所有DB表S列数据为3200的DB表T列与U列数据 15.4.6 MAXL>3200,记录所有DB表S列数据为3300的DB表T列与U列数据 15.5 使用HC表的E列对规则15.4所记录数据的DB表T进行数据匹配,匹配成功后返回DB表U列的数据 15.6 HC表X列赋值为MAXL与规则15.5返回数据的乘积 16. HC表第Z列(购买件费用)赋值规则: 16.1 计算HC表第G列除以1000后的值 16.2 如果HC表B列不为空,则运行规则16.3;如果HC表B列为空,则运行规则16.5 16.3 使用HC表B列数据对DB表W列进行数据匹配,如有匹配结果,则HC表Z列赋值为DB表X列数据。如果没有匹配结果,则继续运行规则16.3 16.4 使用HC表B列数据对DB表AA列进行数据匹配,如有匹配结果,则HC表Z列赋值为规则16.1计算数值DB表AB列数据的乘积。如果没有匹配结果,则继续运行规则16.5 16.5 使用HC表C列数据对DB表W列进行数据匹配,如有匹配结果,则HC表Z列赋值为DB表X列数据。如果没有匹配结果,则继续运行规则16.6 16.6 使用HC表C列数据对DB表AA列进行数据匹配,如有匹配结果,则HC表Z列赋值为规则16.1计算数值DB表AB列数据的乘积。如果没有匹配结果,则赋值为0 17. HC表第AC列(焊接单价)赋值规则: 17.1 使用HC表AB列数据对DB表AF列进行数据匹配,HC表AC列赋值为DB表AG列的返回数据 18. HC表第AG列(激光穿孔)赋值规则: 18.1 HC表AG列赋值为规则7.3记录数据的DB表J列数据 19. HC表第AJ列(钳工单价)赋值规则: 19.1 使用HC表AI列数据对DB表K1至R1进行数据匹配 19.2 HC表AJ列赋值为规则19.1所匹配列和7.3记录数据的DB表匹配结果 20. HC表第AL列赋值规则: 20.1 判断HC表C列内是否含有Deck字符,如有则返回规则7.3记录数据的DB表H列的数据;如不含有Deck字符,则赋值为0
07-26
一、综合实战—使用极轴追踪方式绘制信号灯 实战目标:利用对象捕捉追踪和极轴追踪功能创建信号灯图形 技术要点:结合两种追踪方式实现精确绘图,适用于工程制图中需要精确定位的场景 1. 切换至AutoCAD 操作步骤: 启动AutoCAD 2016软件 打开随书光盘中的素材文件 确认工作空间为"草图与注释"模式 2. 绘图设置 1)草图设置对话框 打开方式:通过"工具→绘图设置"菜单命令 功能定位:该对话框包含捕捉、追踪等核心绘图辅助功能设置 2)对象捕捉设置 关键配置: 启用对象捕捉(F3快捷键) 启用对象捕捉追踪(F11快捷键) 勾选端点、中心、圆心、象限点等常用捕捉模式 追踪原理:命令执行时悬停光标可显示追踪矢量,再次悬停可停止追踪 3)极轴追踪设置 参数设置: 启用极轴追踪功能 设置角度增量为45度 确认后退出对话框 3. 绘制信号灯 1)绘制圆形 执行命令:"绘图→圆→圆心、半径"命令 绘制过程: 使用对象捕捉追踪定位矩形中心作为圆心 输入半径值30并按Enter确认 通过象限点捕捉确保圆形位置准确 2)绘制直线 操作要点: 选择"绘图→直线"命令 捕捉矩形上边中点作为起点 捕捉圆的上象限点作为终点 按Enter结束当前直线命令 重复技巧: 按Enter可重复最近使用的直线命令 通过圆心捕捉和极轴追踪绘制放射状直线 最终形成完整的信号灯指示图案 3)完成绘制 验证要点: 检查所有直线是否准确连接圆心和象限点 确认极轴追踪的45度增量是否体现 保存绘图文件(快捷键Ctrl+S)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值