2 u011359326 u011359326 于 2016.01.30 16:30 提问

java中为什么监听方法的方法参数没有对象,详细代码如下

b.setOnClickListener.( new On ClickListnener( ) {方法体省略若干代码 } );

java中为什么监听方法的方法参数没有对象,详细代码如上

2个回答

caozhy
caozhy   Ds   Rxr 2016.01.30 16:38
已采纳

b.setOnClickListener.( new On ClickListnener( ) {方法体省略若干代码 } );

Listener.这里多了一个点吧。

这里b.setOnClickListener需要一个对象,而new OnClickListnener( ) 正是提供了一个匿名类的匿名对象。

u011359326
u011359326 明白,打错了,谢谢提醒
2 年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.30 16:37

setOnCickListener的参数是Listener类型,Listener是个接口,调用这个方法时传递的参数必须是这个接口的实现类。
你给出的写法中是定义了一个匿名类,直接实例化一个ClickListener接口的实现类,重新接口方法,也就是你省略的代码。
这种匿名类定义的写法,可以避免单独写一个接口实现类,是一种简化方法,如果你这个实现类只是临时用到的话,用匿名类就够了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
详细讲解Java中的方法参数传递机制,介绍string的不可变性
public class Test { public static void main(String[] args) { String str1 = new String("abc"); //上面这句话创建了二个对象,一个对象是在字符串池创建的,另外一个对象是在堆里创建的。 //如果前面字符串池有字面值为"abc"的对象,则不会再次创建。 //String str1这个不是对
JAVA在方法中对象作为参数传递
java方法中只有值传递,没有传地址,这是和C语言一个较大的差别。在C语言中我们使用传地址,实参把自己的内存地址传给了形参,这样对实参的修改就有效了。但是在java中,将方法A中的某个对象传递到方法B中进行修改后,再返回到A中,我们会发现对象在B中的修改在A中也有效。示例代码如下:有一个bean类:public class DemoBean {    private String id;   pu...
java 对象作为方法的参数传递
说到对象作为方法的参数传递的时候,大家都知道,当方法有返回值的时候,我们在其他方法定义一个接收他的对象就把他的值给获取到了,可是如果不定义对象接收呐?请看方法有返回值的情况下:这种情况下,打印出来的值是321,我没有定义对象去接受这个返回值,怎么这个值就发生变化了?这就牵扯到java中的对象在传递的过程中到底是值传递还是引用传递了。在基本数据类型(int,doule,long等)传递的过程中传递的...
main方法参数疑问
今天在网上看到一个这样的题目(如下),在我的能力范围之内,我认为此题选择C项,可是答案是D,我不明白原因,求大神帮忙啊。。。 一个类Example的main()方法的参数是args,类被如下调用执行:java Example cat main方法中访问args[0]的输出是什么? A、cat B、Example C、java D、NullPointerException异常
Java对象(包括集合)作为方法参数相关原理
原理 Java对象作为参数传递给一个方法时,实际上传递的是这个对象引用的拷贝,被拷贝的引用和拷贝的引用指向同一个内存地址,即同一个对象 所以如果在方法中改变参数引用(拷贝的引用)指向的内存地址,对方法外的引用是不会产生任何影响的 若想对方法外的引用也产生影响,其一、可以在方法中调用对象的方法,应为两个引用指向的内存地址是一样的,即同一个对象,例如List集合的add方法等。其二、可以把方法的
Java 类方法,对象参数传参
遇到一个非常郁闷的问题。 写了一个工具类,方法都是静态方法。方法中的参数为对象,我以为把当前对象传入,对对象进行的操作是地址操作。谁知道,并不是。是值,类的静态方法接收的对象会自动克隆一个副本来做操作。所做的操作都是对副本进行操作,而不是真正传进来的对象。切记了
Java中方法参数使用
关于Java中方法参数的使用情况: 1一个方法不能修改一个基本数据类型的参数(即数值型或布尔型)。 –> 见ParamTest之Test 1 2一个方法可以改变一个对象参数的状态。–> 见ParamTest之Test 2 3一个方法不能让对象参数引用一个新的对象。–>见ParamTest之Test 3 ParamTest.java:/** *This program demonstrates pa
实现事件监听器对象的几种形式:
事件监听器是一个特殊的java对象,实现事件监听器对象有如下几种形式: 内部类形式:将事件监听器定义为当前类的内部类(如前面示例程序都是内部类的形式) 外部类形式:将事件监听器定义成一个外部类 类本身作为事件监听器类:让当前类本身实现监听器接口或继承事件适配器 匿名内部类形式:使用匿名内部类创建监听器对象。———————————————————————————————————————————
java 面向对象基础 UML图 构造方法 对象 参数传值 关联关系 依赖关系
UML图 UML(Unified Modeling Language Diagram,UML),它是一个结构图,用来描述一个系统的静态结构。一个UML中通常包含类(class)的UML图,接口(Interface)的UML图以及泛化关系(Generalizaiton)的UML图、关联关系(Association)的UML图、依赖关系(Dependency)的UML图和实现关系(Realizati
java监听器Listener使用详解
转载请注明原文地址: http://www.cnblogs.com/ygj0930/p/6374384.html 在我的项目中有具体应用:https://github.com/ygj0930/CoupleSpace      监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方