热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在Java中创建一些变量类型别名-HowdoIcreatesomevariabletypealiasinJava

letsayIhavethiscode让我说我有这个代码Map<String,String>listnewHashMap<String,String&g

let say I have this code

让我说我有这个代码

Map list = new HashMap();
list.put("number1", "one");
list.put("number2", "two");

how can I make some "alias" the type

我该如何制作一些“别名”类型

Map

to something that easier to be rewritten like

更容易被重写的东西

// may be something like this
theNewType = HashMap;

theNewType list = new theNewType();
list.put("number1", "one");
list.put("number2", "two");

basically my question is, how to create "alias" to some "type", so i can make it easier to write and easier when need to change the whole program code.

基本上我的问题是,如何为某些“类型”创建“别名”,因此当需要更改整个程序代码时,我可以更容易编写和更容易。

Thanks, and sorry if this is silly question. I'm kinda new in Java.

谢谢,对不起,如果这是一个愚蠢的问题。我是Java的新手。

5 个解决方案

#1


38  

There are no aliases in Java. You can extend the HashMap class with your class like this:

Java中没有别名。您可以像这样使用类扩展HashMap类:

public class TheNewType extends HashMap {
    // default constructor
    public TheNewType() {
        super();
    }
    // you need to implement the other constructors if you need
}

But keep in mind that this will be a class it won't be the same as you type HashMap

但请记住,这将是一个类,它与键入HashMap 不同

#2


9  

There is no typedef equivalent in Java, and there is no common idiom for aliasing types. I suppose you could do something like

Java中没有typedef等价物,并且对于别名类型没有常见的习惯用法。我想你可以做点什么

class StringMap extends HashMap {}

but this is not common and would not be obvious to a program maintainer.

但这并不常见,对于程序维护者来说并不明显。

#3


7  

Although Java doesn't support this, you can use a generics trick to simulate it.

虽然Java不支持这一点,但您可以使用泛型技巧来模拟它。

class Test {
     void x(I i, L l) {
        System.out.println(
            i.intValue() + ", " + 
            l.longValue()
        );
    }
}

Source: http://blog.jooq.org/2014/11/03/10-things-you-didnt-know-about-java/

#4


2  

The closest one could think of is to make a wrapper class like so

最接近的人可以想到的是制作一个这样的包装类

class NewType extends HashMap {
     public NewType() { }
}

I really wish Java had a sound type aliasing feature.

我真的希望Java有一个声音类型别名功能。

#5


0  

Nothing like that exists in Java. You might be able to do something with IDE templates or autocompletion, and look forward to (limited) generics type inference in Java 7.

Java中没有类似的东西。您可以使用IDE模板或自动完成执行某些操作,并期待Java 7中的(有限的)泛型类型推断。


推荐阅读
  • 本文探讨了 Java 中 Pair 类的历史与现状。虽然 Java 标准库中没有内置的 Pair 类,但社区和第三方库提供了多种实现方式,如 Apache Commons 的 Pair 类和 JavaFX 的 javafx.util.Pair 类。这些实现为需要处理成对数据的开发者提供了便利。此外,文章还讨论了为何标准库未包含 Pair 类的原因,以及在现代 Java 开发中使用 Pair 类的最佳实践。 ... [详细]
  • Android目录遍历工具 | AppCrawler自动化测试进阶(第二部分):个性化配置详解
    终于迎来了“足不出户也能为社会贡献力量”的时刻,但有追求的测试工程师绝不会让自己的生活变得乏味。与其在家消磨时光,不如利用这段时间深入研究和提升自己的技术能力,特别是对AppCrawler自动化测试工具的个性化配置进行详细探索。这不仅能够提高测试效率,还能为项目带来更多的价值。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • Java中不同类型的常量池(字符串常量池、Class常量池和运行时常量池)的对比与关联分析
    在研究Java虚拟机的过程中,笔者发现存在多种类型的常量池,包括字符串常量池、Class常量池和运行时常量池。通过查阅CSDN、博客园等相关资料,对这些常量池的特性、用途及其相互关系进行了详细探讨。本文将深入分析这三种常量池的差异与联系,帮助读者更好地理解Java虚拟机的内部机制。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 深入解析 Unity URP/SRP 渲染管线:匠心打造的全面指南
    本文深入探讨了Unity中的URP、SRP和HDRP渲染管线,详细解析了它们之间的关系及各自的特点。首先介绍了SRP的基本概念及其在Unity渲染架构中的作用,随后重点阐述了URP和HDRP的设计理念与应用场景。文章还分析了SRP诞生的背景,解释了为何Unity需要引入这一灵活的渲染框架,以满足不同项目的需求。通过对比URP和HDRP,读者可以更好地理解如何选择合适的渲染管线,以优化项目的性能和视觉效果。 ... [详细]
  • 本文深入解析了如何通过自定义 ViewGroup 实现类似支付宝风格的酷炫雷达脉冲动画效果。文章详细介绍了自定义 ViewGroup 的原理和实现步骤,并结合实际案例展示了如何在 Android UI 设计中应用这一技术,为开发者提供了宝贵的参考和实践指导。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
  • Android开发常见问题汇总(含Gradle解决方案)第二篇
    本文继续深入探讨Android开发中常见的问题及其解决方案,特别聚焦于Gradle相关的挑战。通过详细分析和实例演示,帮助开发者高效解决构建过程中的各种难题,提升开发效率和项目稳定性。 ... [详细]
  • Envoy 流量分配策略优化
    在本研究中,我们对Envoy的流量分配策略进行了优化,旨在提高系统的稳定性和性能。实验环境包括一个前端代理服务(Envoy,IP地址为172.31.57.10)和五个后端服务。通过调整Envoy的配置,实现了更高效的流量分发和负载均衡,显著提升了整体系统的响应速度和可靠性。 ... [详细]
  • 简介springboot开启事务很简单,只需要一个注解Transactional就可以了。因为在springboot中已经默认对jpa、jdbc、mybatis开启了 ... [详细]
  • 我有3个来自RESEARCHS的映射值,指定要使用参考数据集填充的行中的范围。该研究 ... [详细]
author-avatar
无可奈何花落去
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有