Tag: 回调

更新活动频道的JList时出现问题

介绍: 我创建了一个聊天程序,客户端连接服务器。 客户端能够加入通道,当它们这样做时,jList(请参阅代码)应该通过DefaultListModel更新(getChannel()),并且应该显示连接到同一通道的所有其他客户端。 我知道getChannel(); 工作,因为我已经调试它(并使用systemoutprint)。 我已经有活动频道和用户在线的Jlists,这有效! 🙂 客户端使用回调方法通知连接到服务器的其他客户端。 我已经完成了一些调试,而且我一直在尝试重复我的代码。 inheritance人代码: 服务器: private Hashtable<String, ArrayList> channels = new Hashtable<String, ArrayList>(); public void connectChannel(String username, String channel) throws RemoteException{ setUsername(username); if(isUserRegistered(username)){ if (!channels.containsKey(channel)) { String message = “User ” + username + ” entered the channel”; channels.put(channel, new ArrayList()); channels.get(channel).add(username); notifyChannelSystem(channel, “SYSTEM”, message); notifySelf(username, “Write /? for […]

Spring Async RMI Call

是否可以异步调用Java RMI? 我希望我的RMI调用立即返回,并且服务器在任务完成后调用回调。 我目前正在使用Spring框架的RMI支持,我在spring找不到任何描述它的文档,我怀疑我需要自己实现它。 如果可能,请提供示例。 提前致谢!

JAVA:RMI回调 – >对象已导出

这是我的第一个问题,很抱歉,如果我说错了,我的英语。 我必须在java中做一个分布式挂起项目,有客人,玩家和主人(更多匹配)。 当用户(已经注册)自己登录或主人打开比赛时,服务器必须通知所有客人(仅限客人)该事件。 在客户端我必须创建2个存根,1为服务器,另一个为图形界面(swing)。 线程池用于管理匹配,现在不使用。 这是客户端代码: package User; public class Utente extends RemoteServer implements UserInterface, GraphicInterface,Serializable { private static final long serialVersionUID = 2L; private String name; private String password; private String host = “localhost”; private Socket soc; private int port = 1800; private UserInterface stub = null; private RegistryInterface server_interface = null; private Registry […]

Android监听器/回调如何?

我有一个生成Bitmap的pojo方法。 完成后,我想将Bitmap抛出到UI活动。 这是一个示例,但它是: private void sendBitmap(Bitmap bitmap) { // TODO – I’m in the pojo where I want to send the bitmap } 仅供参考:我想要通知的UI活动不在我的项目中。 我的意思是,我的项目是一个SDK,这样另一个开发人员就会在它可用时抓住这些信息。 我一直试图解决这个问题,但有些困惑。 我需要一个“回调”界面吗? 还是“听众”界面? 或两者? 我在MyActivity中创建了一个回调接口。 到现在为止还挺好。 这是它到目前为止的样子: import android.graphics.Bitmap; public class MyActivity { // protected void whateverOtherMethods (Bundle savedInstanceState) // { // . // . // . // . // […]

JNI:从JVM到C ++的回调无法运行

我从C ++程序启动JVM。 C ++代码: JNIEXPORT jobject JNICALL com_javelin_JavelinMarketData_callBackIntoNative(JNIEnv* env, jobject obj, jlong ptr) { std::cout << "com_javelin_JavelinMarketData_callBackIntoNative called" <GetStaticMethodID(helloWorldClass, “main”, “([Ljava/lang/String;)V”); env->CallStaticVoidMethod(helloWorldClass, mainMethod, …); } 然后我需要从java回调的C ++函数: Java代码: native void callBackIntoNative(long ptr); public void onResponse(long param) { System.out.println(“Calling callBackIntoNative()”); callBackIntoNative(param); } 当我运行我的C ++程序时,JVM正确启动,但在打印“Calling callBackIntoNative()”后,会出现以下接受: Exception during callBackIntoNative(): ‘com.javelin.JavelinMarketData.callBackIntoNative(J)V’ java.lang.UnsatisfiedLinkError: com.javelin.JavelinMarketData.callBackIntoNative(J)V 你能帮忙吗?

从适配器回调

所以我有一个自定义列表视图。 这就像Instagram布局,每个列表项中有1个图像和一堆按钮。 所以这就是问题所在: 我想实现分享按钮。 为此,我尝试创建从适配器到活动的回调。 但它似乎没有用。 这是我到目前为止(我裁掉了不相关的部分): 主要活动 public class MainActivity extends ActionBarActivity implements ListAdapter.OnShareClickedListener{ ListView main_list; List url_list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); main_list = (ListView) findViewById(R.id.listView); ListAdapter nListAdapter = new ListAdapter(context, url_list); main_list.setAdapter(nListAdapter); } @Override public void ShareClicked(String url) { Log.e(“Test”,url); } } ListAdapter public class ListAdapter extends BaseAdapter implements […]

使用双冒号 – 静态和非静态方法引用之间的差异

编辑:我的问题在这里得到了解答。 总而言之,我对非静态方法引用的使用感到困惑。 function接口和参考方法具有不同数量的参数。 回答我的问题的是评论和接受的答案。 我目前正在阅读关于流减少方法的Java教程( https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html )。 在那里,我发现了一段我认为错误的代码,所以我做了一个更简单的代码来确保。 // B.java file import java.util.*; public class B { public static void main(String[] args) { List zahlen = new LinkedList(); zahlen.add(1); zahlen.add(2); zahlen.add(3); Averager averageCollect = zahlen.stream() .collect(Averager::new, Averager::addcount, Averager::combine); System.out.println(averageCollect.average()); } } // Averager.java from the official Java tutorial public class Averager { private int total […]

使用Runnable作为回调/子程序的不良做法?

使用Runnable作为回调被认为是不好的做法吗? 考虑到Runnable意味着与线程一起使用(参见它的JavaDoc),我想知道这是否正常 – 或者我是否应该为此目的创建自己的接口。 我所说的是: public class KeyBinding { public KeyBinding(KeyStroke stroke, Runnable handler) { //… } }

使用CompletableFuture进行回调

我正在尝试使用一些字符串创建一个非常简单的回调。 IDE的代码意义是对特殊的未经检查的调用抱怨。 任何人都可以给我一个解决方案吗? 最后的想法是包装一个网络调用,以便返回承诺的结果,我可以根据需要添加其他function。 import java.util.concurrent.*; import java.util.function.BiConsumer; import java.util.function.Function; import java.util.function.Supplier; public class FuturesTest { public static void main(String[] args) throws Exception { new FuturesTest().go(); } private void go() throws ExecutionException, InterruptedException { CompletableFuture.supplyAsync(new MakesANetworkCall()) .whenComplete(new BiConsumer() { @Override public void accept(String result, String s) { System.out.println(result.toString()); } }) .exceptionally(new Function() { @Override public […]

模拟函数指针

以下类包含一个应使用回调技术计算积分的方法。 package integrals; import java.lang.*; public class Integrals { public static double f1(double x) { return x*5+Math.sin(x); } public static double f2(double x) { return Math.pow(x*f1(-x),x); } public static double TrapezoidalIntegration(double a,double b,int n,double (*f)(double)) { double rValue=0; double dx; dx=(ba)/n; for(double i=f(a);i<f(b);i+=dx) rValue+=((f(i)+f(i+dx))*dx)/2.0; return rValue; } public static void main(String[] args) { } } […]