首页 > 编程语言 >【Java】匿名类的初始化

【Java】匿名类的初始化

时间:2022-12-18 17:25:43浏览次数:59  
标签:初始化 java HashMap 匿名 new Java

匿名类语法

匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类。其语法形式如下:

new <类或接口>() {
    // 类的主体
};

注意:类不仅限于 抽象类

匿名类的使用

匿名 Map 的初始化

Map<String, Integer> map = new HashMap<>() {
            {
                put("one", 1);
                put("two", 2);
            }
        };

这里我使用代码块进行初始化,大括号内的 代码块,方法,变量 都不可以使用 static 修饰

遇到的bug
使用 java 8 进行构建的时候会报错

java: 无法推断java.util.HashMap<K,V>的类型参数
  原因: -source 8 中不支持 '<>' 具有匿名的内部类
    (请使用 -source 9 或更高版本以启用 '<>' 具有匿名的内部类)

解决办法
(1) file - settings - [Build,Execution,Deployment] - compiler - Java compiler - 更改java版本
(2) new HashMap<String, Integer>() 要指定 泛型

匿名 Set、List 的初始化

同上

List<Integer> list = new ArrayList<>() {
    {
        add(1);
        add(2);
    }
};
Set<Integer> set = new HashSet<>() {
    {
        add(1);
        add(2);
    }
};     

在匿名类中 定义 变量 ,方法

Map<String, Integer> map = new HashMap<>() {
    int i ;
    {
        put("one", 1);
        put("two", 2);
        claim();
        System.out.println(i);
    }
    private void claim() {
        System.out.println("巴拉巴拉巴拉巴拉巴拉巴拉");
    }
};

引用Java匿名类,Java匿名内部类

标签:初始化,java,HashMap,匿名,new,Java
From: https://www.cnblogs.com/HypoPine/p/16990584.html

相关文章

  • Java啤酒问题
    啤酒问题:12块钱买啤酒,2块钱一瓶两个空瓶换一瓶酒四个瓶盖换一瓶酒 最后能买多少啤酒? 问题:统一换算成钱,再买酒,递归实现packagecn.edu.lcudcc;publicclassBe......
  • 二进制文件转Hex和Wav文件转Hex的Java代码
    二进制文件转Hex对于需要将二进制数据写入固件的场景(例如mp3文件),需要将二进制文件表示为byte数组importjava.io.File;importjava.io.FileInputStream;importjav......
  • 27_Java中的方法引用
    Java中的方法引用​ 方法引用是在Lambda的基础进行的,本质是将Lambda中的参数列表传递给我们使用了的方法引用中的方法。(这样在使用一些本就存在的方法完成函数式编......
  • Java核心实操:内存溢出 实战、内存泄漏实战
    文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面......
  • JAVA流程控制
    JAVA流程控制Scanner对象java.util.Scanner是JDK5新特征,我们可以通过Scanner类来获取用户的输入next():一定要读取到有效字符后才可以结束输入对输入有效字符之......
  • javaScript随机图片
    <scripttype="text/javascript">//<!CDATA[varpic=[];pic[0]="链接";pic[1]="链接";pic[2]="链接";pic[3]="链接";varr......
  • Java中for语句的加强版
    语法格式://语法格式for(声明语句:表达式){ //代码句子}声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数......
  • Java递归查找文件位置
     packagecn.edu.lcudcc;importjava.io.File;publicclassRecursionDemo{publicstaticvoidmain(String[]args){//传入目录和文件s......
  • 微软出品自动化神器【Playwright+Java】系列(八) 之 使用 Playwright进行API接口测试
    前言我喜欢周末是因为,可以做一些我自己喜欢的事。比如我插上耳机,写点东西就能坐上一天,这也许算是属于我自己的一份静谧吧。想系统学习请参考:Playwright+Java入门使用Pl......
  • Java 代码
    AOP日志:需引入aop-start,lombok或任何一个日志框架importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.*;importorg.springframework.......