社区
Java SE
帖子详情
java中有类似于函数指针的东西没???????
jefflovejava
2008-12-18 03:47:39
java中有类似于c++中的函数指针或者是c#中的代理没?
或者说,我现在要在一个函数(function1)里调用某个函数(function2),function2的签名形式不变,但是所在的类以及名称会有变化,我想在function1的参数列表里加入function2的签名,不知道java应该如何实现这个?
...全文
806
26
打赏
收藏
java中有类似于函数指针的东西没???????
java中有类似于c++中的函数指针或者是c#中的代理没? 或者说,我现在要在一个函数(function1)里调用某个函数(function2),function2的签名形式不变,但是所在的类以及名称会有变化,我想在function1的参数列表里加入function2的签名,不知道java应该如何实现这个?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pauliuyou
2008-12-19
打赏
举报
回复
这类需求用反射实现
WIN_ANGEL
2008-12-19
打赏
举报
回复
进来瞅瞅~
ccc_moriya
2008-12-19
打赏
举报
回复
mark...
axman
2008-12-19
打赏
举报
回复
难道就没有人懂CALLBACK这种基础概念?
fastmask
2008-12-19
打赏
举报
回复
上面都说了用接口来实现,或者用反射机制都是可以实现的。
没有必要讨论指针。
树成
2008-12-18
打赏
举报
回复
java的语言机制里面没有指针的概念,但是有动态代理,spring的AOP基础就是动态代理。
但是java里面没有指针概念却可以通过native的方式来封装指针,不过那不是java实现的,而是java利用C++去实现了。
我们都知道,所谓的指针就是一个内存地址值,也就是一个数字,它完全可以用long类型来表示。
你大概可以这么实现,写两个方法,一个传入一个Object类型,返回这个Object类型的地址值(long类型),另一个传入地址值(long类型数值),返回一个Object类型,然后根据需要吧这个Object类型进行强转(当然你也可以使用泛型来替代)。当遇到基础数据类型的时候,在native里面封装成对象类型类型就可以了,不然Object类型不能接受基础数据的。这样你就可以实现类似指针功能了。
不过这样实现我并不推荐,首先这样的实现不跨平台(跨平台也可以,每个平台写一个native,就像jdk那样),这样一来java优势荡然无存还不如直接用有指针的语言来开发,其次,这种实现方式极易使虚拟机崩溃(产生不可抛出异常的内存错误,因为它已不在java虚拟机管辖范围之内了),有时甚至会导致蓝屏死机这种可怕后果,慎用。
bigbro001
2008-12-18
打赏
举报
回复
[Quote=引用 3 楼 ZangXT 的回复:]
函数指针可以用接口类似的实现。
比如
public interface FunctionPointer{
voif function();
}
public void test(FunctionPointer fp){
fp.function();
}
只要给test方法传入不同的实现该接口的类的对象即可。跟你把指针指向不同的函数类似。
Effective Java中有说明,可以看看。
[/Quote]
学习了。。。
酒剑仙
2008-12-18
打赏
举报
回复
指针=引用
tianice
2008-12-18
打赏
举报
回复
引用功能类似
ZangXT
2008-12-18
打赏
举报
回复
[Quote=引用 16 楼 bao110908 的回复:]
目前没有。但在 JDK 7 中可能会增加闭包,如果增加的话那就有了。
[/Quote]
不希望增加,呵呵。
火龙果被占用了
2008-12-18
打赏
举报
回复
目前没有。但在 JDK 7 中可能会增加闭包,如果增加的话那就有了。
chandlersong
2008-12-18
打赏
举报
回复
还是看看基本java基础入门之类的书吧。尽管没学过C,和C++,同时也觉得所谓的语言只是手中的一支笔。
但是,java和C的思考方式感觉完全不一样。一天到晚类比,等于没学。
pepsighost
2008-12-18
打赏
举报
回复
用引用就可以了
jhr924
2008-12-18
打赏
举报
回复
java 叫 引用
hbwhwang
2008-12-18
打赏
举报
回复
反射比函数指针更威猛
不善^
2008-12-18
打赏
举报
回复
class A{
int i =10;
}
main()
{
A a = new a()
a.i; //这里引用也就是类似指针
}
guolimin1118
2008-12-18
打赏
举报
回复
UP
sleep_ok
2008-12-18
打赏
举报
回复
参考策略模式
jefflovejava
2008-12-18
打赏
举报
回复
[Quote=引用 3 楼 ZangXT 的回复:]
函数指针可以用接口类似的实现。
比如
public interface FunctionPointer{
voif function();
}
public void test(FunctionPointer fp){
fp.function();
}
只要给test方法传入不同的实现该接口的类的对象即可。跟你把指针指向不同的函数类似。
Effective Java中有说明,可以看看。
[/Quote]
谢谢提示了,我有点思路了,等弄好了回来结贴
twinsouzhili
2008-12-18
打赏
举报
回复
有,在JAVA中我们称引用.
加载更多回复(6)
java
实现
函数指针
在
Java
程序员面试笔试宝典中看到的
东西
,感觉很有用,特开此文
函数指针
一般作为函数的参数来使用,开发人员在使用是可以根据自己的需求传递自动以的函数来实现指定的功能,例如,在实现排序算法时,可以通过传递一个
函数指针
来决定两个数的先后顺序,从而最终决定算法是按照升序还是降序。 在
Java
中
没
有指针的概念,如何在
Java
语言中
类似
函数指针
的功能呢?具体思路如下 ①定义一个接口,接口中声...
Java
中的“
函数指针
”
[一点废话] 很久都
没
有管理过自己的博客了,原先只是想记录点自己的笔记和遇到的问题以及如何解决的,以供自己回头查看方便,同时也可以帮助其他人。最近登陆上来发现竟然有这么多人看我写过的博文,虽然写的也不怎么好,所以打算后面好好的写一些
东西
,养成习惯吧。最近又重新看了比较新的《
Java
核心卷 第十版》,发现了值得记录的一些内容,这里就结合我自己的体会总结下,鉴于本人水平有限,如果有什么理解不对的地方,...
java
函数指针
数组的值_
函数指针
,指针函数,
函数指针
数组
这是一个群友发的笔试题目,里面涉及的
东西
也比较有意思。直接看代码void(*f[])(char*)这个是个什么
东西
?我们先看看下面的
东西
函数指针
和指针函数的定义我们看个代码int*func(inta,intb)我们之前说过运算符的优先级,「 *」 的优先级低于「( 」由于「*」的优先级低于「()」的优先级,因而func首先和后面的「 () 」结合,也就意味着,func是一个函数。...
java
中实现
类似
函数指针
的功能
java
如何实现
类似
函数指针
、委托的效果。
Java SE
62,622
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章