collection包中BeanMap的设计

问题描述

public static HashMap defaultTransformers = new HashMap(); static { defaultTransformers.put( Boolean.TYPE, new Transformer() { public Object transform( Object input ) { System.out.println("s:"+Boolean.valueOf( input.toString() )); return Boolean.valueOf( input.toString() ); } } );public interface Transformer { public Object transform(Object input);}我摘抄出来一段,上面的System.out并没有输出,不明白没有实现Transformer 这个借口的类就能new Transformer() ? 问题补充:上面是static,我初始化实例的时候应该自动调用

解决方案

引用上面是static,我初始化实例的时候应该自动调用自动调用是没错创建了一个对象 new Transformer() { public Object transform( Object input ) { System.out.println("s:"+Boolean.valueOf( input.toString() )); return Boolean.valueOf( input.toString() ); } } 并将这个对象放到defaultTransformers中,但并没有调用transform方法
解决方案二:
引用上面是static,我初始化实例的时候应该自动调用自动调用了 defaultTransformers.put() ,但没有调用 put 的参数里的方法。
解决方案三:
这种初始化类的方式属于匿名类的使用,你可以去了解一下匿名类
解决方案四:
引用上面的System.out并没有输出你没有调用的时候当然不会输出:import java.util.HashMap;public class Test {public static HashMap defaultTransformers = new HashMap();static {defaultTransformers.put(Boolean.TYPE, new Transformer() {public Object transform(Object input) {System.out.println("s:" + Boolean.valueOf(input.toString()));return Boolean.valueOf(input.toString());}});}/** * @param args */public static void main(String[] args) {Transformer transformer = (Transformer) defaultTransformers.get(Boolean.TYPE);transformer.transform(false); // 调用}}输出结果:s:false
解决方案五:
引用不明白没有实现Transformer 这个借口的类就能new Transformer() ?这个里面的代码就是实现了 new Transformer() { public Object transform( Object input ) { System.out.println("s:"+Boolean.valueOf( input.toString() )); return Boolean.valueOf( input.toString() ); } }
解决方案六:
new Transformer() { public Object transform( Object input ) { System.out.println("s:"+Boolean.valueOf( input.toString() )); return Boolean.valueOf( input.toString() ); } } 这不就是Transformer的现实吗?

时间: 2024-08-31 08:26:28

collection包中BeanMap的设计的相关文章

移动开发-v4包中的ViewPager与ViewPager有什么不同?

问题描述 v4包中的ViewPager与ViewPager有什么不同? 开发-v4包中的ViewPager与ViewPager有什么不同?-viewpager不用v4包"> 两种ViewPager,第二种在用的时候,这样添加进xml里就会闪退.网上找到的都是v4的ViewPager,也不知道第二种怎么用 请问第二种非v4包中的ViewPager怎么用?有什么特殊吗 解决方案 v4是低版本兼容包 如果是低版本,没有viewpager就需要引入v4包 Android Support v4 是最

(初学)我写一个学校MIS系统,service包中需要用接口吗?

问题描述 我的思路:首先我我在model包中写了Person类,有姓名,性别,电话三个属性:然后Student类从Person继承,有自己的属性id:Teacher类从Person继承,也有自己的属性Tid:在Service包中想实现学生和老师信息的正删改查功能,是不是要用到接口啊?然后StudentService和TeacherService执行Service接口,接口中我写了抽象方法:packagecom.soft.service;importcom.soft.model.Person;pu

Java中Collection遍历中删除、合并元素

我的分词结果链表需要合并连续的数字和日期,所以需要熟悉一下Java Collection在遍历的过程中同时删除.合并元素的小trick.自己试验了一下,活用listIterator的previous()和next()方法就可以达到目的. 遍历中删除 数据集 List<Integer> integerList = new LinkedList<Integer>(); for (int i = 1; i <= 10; ++i) {     integerList.add(i);

网页banner设计理论:工作中对banner设计的理解

网页制作Webjx文章简介:Banner广告条中的字体设计. 由于banner一般用于专题类网站,在门户网站的二级页面,用户进来之前,在首页已经对主题有一定的了解和认识,所以banner的作用是在二级页面中起到包装页面的同时增加内容的趣味度和内容方向引导:所以这也是和传统广告中普遍要求第一感官视觉冲击力来强奸眼球所不同的地方 本来想写"Advertisemen中的字体结构分析",后来发现这个标题写得有点大,偏离了在目前工作中的针对性,因此缩小到banner的范围,以下内容仅个人在目前工

Banner广告条中的字体设计

导读:由于banner一般用于专题类网站,在门户网站的二级页面,用户进来之前,在首页已经对主题有一定的了解和认识,所以banner的作用是在二级页面中起到包装页面的同时增加内容的趣味度和内容方向引导:所以这也是和传统广告中普遍要求第一感官视觉冲击力来强奸眼球所不同的地方 本来想写"Advertisemen中的字体结构分析",后来发现这个标题写得有点大,偏离了在目前工作中的针对性,因此缩小到banner的范围,以下内容仅个人在目前工作中对banner设计上的一点浅见,仅起抛砖引玉的作用.

为什么需要在移动界面中注意隐喻设计

文章描述:是的,有些时候,我就在想这个简单的问题,而那时我的答案还是:界面是对软件应用解决方案的显性,使用图形化符号,向使用者解释它的功能与任务. 界面是什么? 是的,有些时候,我就在想这个简单的问题,而那时我的答案还是:界面是对软件应用解决方案的显性,使用图形化符号,向使用者解释它的功能与任务. 但最近一些认知却让我对这个问题有了新的回答:界面就是软件应用它本身.它不是一份对软件应用功能的图形化说明书,不是对软件应用功能与任务的图形化翻译,它就是软件应用本身,并且与之浑然天成.一个简单的问题,

信息设计的交流原则和信息设计中的图形设计

文章描述:信息设计中的图形设计原则. 在当今纷繁复杂的世界,设计形式也是百花齐放,什么设计才是最容易被用户接受,并且能很好的给用户带来他们需要的信息,这是值得我们探讨的.  信息设计的定义 信息设计顾名思义就是用于信息交流的设计,如果我们把"信息"这个词语拿出来单独来解释的话,首先"信息"这个词语由来已久,它是人类文明赖以发展的基础,可以说人类所有的知识和故事都是信息,通过信息的传递,人类的文明才得以进步和向前发展.现在人们接收的信息越来越多,所以我们可以根据规律来

手机网站交互设计中的信息设计

在手机上浏览信息,存在着太多的局限,手机屏幕小注定了一页不能显示太多的信息,环境光线的变化注定页面设计不能过于花哨,流量限制注定不能有太多的图片和样式. 如果让你的用户直接在手机上浏览为web所设计的网页,即使是经过一些手机浏览器的优化,体验还是会很糟糕,甚至有时候会让人难以忍受. 如何调整信息展现方式,使内容能在小屏幕的手机上也更友好的展现呢?接下来我将通过一些原理和实例来阐述自己的观点. 首先,老祖宗Ben Shneiderman的交互设计8项黄金法则我们要铭记于心,因为这些法则也是适用于移

F#中DSL原型设计:语法检查和语义分析

最近,人们对于领域特定语言F#中DSL原型设计的兴趣卷土重来.这些语言不仅能够为特定领域提供更好等级的提炼,从而有助于减少在通用语言中因低等级构造而造成的错误:而且通过提供额外配置.定制的业务逻辑等,它们为用户提供了一种有效的机制,用于细调你的应用程序.总之,DSL能够让你的应用程序更加多样化并具有更好的伸缩性. 大致来讲,领域特定语言的工作方式有两种--你可以通过对以源DSL编写的源文本进行转译来实施,或者通过将源文本编译为可执行代码.这两种方式都有着独特的优点和缺点.对于解释器和编译器的实施