本篇文章给大家谈谈如何实现接口传递参数,以及如何实现接口传递参数传输对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享如何实现接口传递参数的知识,其中也会对如何实现接口传递参数传输进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
这种接口怎么调用?怎么传递参数?
就是一个restful接口,可以用url调用。结构如下:
ip+端口+mapping+参数。
比如你这个,假设这个程序在你本地电脑上,你的web容器比如tomcat启动端口为8080,你可以这么写:
localhost:8080/api/Role/AddUser?user=xxrole=xx
(xx为你具体要传的参数)
再加一句,请求必须是post请求,可以用postman或者httpClient测试
java接口 作为函数参数传递。。。。怎么传递值?
你后面的表述确实有点不清晰,你问了NVectorADT dv4 = dv.plus(dv2)这个东西,参数dv2是一个DVector类型的,而接口中定义的dv2应该是NVectorADT的,因为DVector实现了NVectorADT这个接口,其实我们可以有一个很不准确的理解:DVector是NVectorADT的子类,所以DVector类型的也就是NVectorADT类型,就好像我们说DVector类型也是Object类型一样。但是这个说法不准确,但是可以这样理解。
下来就是你问参数的传递问题,你问参数在接口里面是怎么传递的,我觉得你理解错,接口就相当于一个规范,里面不存在什么传递值之说,值的传递是在实现类里面。
也就是你只要实现接口过后,就可以暂时不用去管它了,你只需要看你的实现类厘米的方法就行了。
要是对你有帮助,不要忘了采纳哟,呵呵
java中,如何在一个接口的无名实现中传递某些参数?
应该可以这样写:
final Object obj;
new Interface(){
@Override
public void write(){
//...内部调用外部的obj输出东西
}
C#如何给OCX控件的接口传递数组参数
c#和java都是禁用指针的(一定要用的时候C#可以用unsafe代码进行操作),但对于你的需求没看出有任何使用指针的必要,那个50的参数我不清楚是什么,如果只是代码数组长度那就是多余的,如果是别的用途要保留,你可以将位置做为一个单独的默认参数,形如
public void check(int[] data,int len,int pos=0)
这样你如果是check(arr,20)就是表示从0开始,如果是check(arr,20,10)就是从10开始
如何生成内部hide接口实例并通过反射作为参数进行传递
一、前言
在android系统源码中,有很多的api是隐藏的,在eclipse中通过sdk是无法访问到的。这些api有的是整个类/接口、有的是某个具体的方法、或者变量,在源码中通过文档注释内的“@hide”字符进行标识。如果我们需要去访问这些被hide的方法、类,可以采用如下两种方式:
1、在源码环境下进行访问,即将我们的工程放到源码下进行编译,这样是可以访问的;
2、通过java的反射机制
二、场景描述
这里讲述的是在eclipse下直接通过反射机制来访问系统隐藏api。举例如下:
android.app.ActivityManagerNative类定义了一个setActivityController(IActivityController watcher)方法,该方法通过参数IAcitivityController设置一个监听器,用来监听系统启动某个Activity。当系统启动某个Activity时,会调用IAcitivityController的回调方法。
在工程中可以通过获取ActivityManagerNative对象并生成一个IActivityController实例作为setActivityController()的参数传递过去,从而达到在工程中监听到系统Activity的启动。
ActivityManagerNative.java和IAcitivityController.aidl均为hide api,如下:
[java] view plaincopy
package android.app;
/** {@hide} */
public abstract class ActivityManagerNative extends Binder implements IActivityManager{
/**
* Retrieve the system's default/global activity manager.
*/
static public IActivityManager getDefault() {
return gDefault.get();
}
public void setActivityController(IActivityController watcher) throws RemoteException{}
}
package android.app;
import android.content.Intent;
/**
* Testing interface to monitor what is happening in the activity manager
* while tests are running. Not for normal application development.
* {@hide}
*/
interface IActivityController
以上类都有“@hide”标识,所以需要通过反射的机制来进行访问。ActivityManagerNative对象可通过反射和该类的静态方法getDefault()获取到,再通过setActivityController方法设置监听器。但IActivityController也是内部hide aidl文件,如何继承该接口并实例化呢?
解决方案:把系统内的IActivityController.aidl文件在我们自己的工程里按照同样的包结构创建一份,在程序中继承该接口,在调用setActivityController时传入该实例即可。
三、实现过程
1、拷贝系统内IActivityController.aidl到工程中,与系统内该文件包结构保持一致:
2、程序中实现该接口:
[java] view plaincopy
private class ActivityController extends IActivityController.Stub {
public boolean activityStarting(Intent intent, String pkg) {
return true;
}
public boolean activityResuming(String pkg) {
return true;
}
public int appEarlyNotResponding(String processName, int pid,
String annotation) {
return 0;
}
public boolean appCrashed(String processName, int pid, String shortMsg,
String longMsg, long timeMillis, String stackTrace) {
return false;
}
public int appNotResponding(String processName, int pid,
String processStats) {
return 0;
}
}
3、通过反射获取ActivityManagerNative对象并调用方法setActivityController进行监听器设置:
[java] view plaincopy
private void setActivityController() {
try {
Class<? cActivityManagerNative = Class
.forName("android.app.ActivityManagerNative");
Method mGetDefault = cActivityManagerNative.getMethod("getDefault",
null);
Object oActivityManagerNative = mGetDefault.invoke(null, null);
Class<? i = Class.forName("android.app.IActivityController$Stub");
Method mSetActivityController = cActivityManagerNative.getMethod(
"setActivityController",
Class.forName("android.app.IActivityController"));
mSetActivityController.invoke(oActivityManagerNative,
new ActivityController());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
java 别人想实现我的接口调用里面的方法并传给我两个参数我该怎么写这个接口来更
是否能说清楚些 总感觉你的思路不是很清晰 接口的方法好像谁实现谁能写方法体 一般拿接口当参数传递
例如
public interface A{
public void doA(Object param1, Object param2);
}
public class B implements A{
public void doA(Object param1, Object param2){
//操作你想做的
}
}
public class Test{
public void doTest(A a){
a.doA();
}
}
在别的地方可以 调用Test的方法doTest(参数是你实现的B)
关于如何实现接口传递参数和如何实现接口传递参数传输的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
如何实现接口传递参数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何实现接口传递参数传输、如何实现接口传递参数的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~